OpenCV:去噪图像/视频帧

时间:2015-03-17 16:38:41

标签: c++ opencv video noise

我想使用OpenCV和C ++对视频进行去噪。我在OpenCV doc网站上找到了这个:

fastNlMeansDenoising(contourImage,contourImage2);

每次加载新帧时,我的程序都应该对当前帧(contourImage)进行去噪并将其写入contourImage2。

但是如果我运行代码,它会返回0并退出。我做错了什么或者是否有其他方法去除图像去噪? (它应该很快,因为我正在处理视频)

1 个答案:

答案 0 :(得分:1)

当你使用c ++时,你没有提供完整的参数试试这个。

cv::fastNlMeansDenoisingColored(contourImage, contourImage2, 10, 10,7, 21);

// This is Original Function to be used.
cv::fastNlMeansDenoising(src[, dst[, h[, templateWindowSize[,     searchWindowSize]]]]) → dst

参数:
src - 输入8位1声道,2声道或3声道图像 dst - 输出与src具有相同大小和类型的图像 templateWindowSize - 用于计算权重的模板修补程序的像素大小。应该是奇怪的。建议值7像素 searchWindowSize - 用于计算给定像素的加权平均值的窗口的像素大小。应该是奇怪的。线性影响性能:更高。
searchWindowsSize - 更大的去噪时间。建议值21像素   h - 参数调节过滤器强度。大h值可以完美地消除噪声,但也可以消除图像细节,较小的h值可以保留细节,但也可以保留一些噪声