2016-03-28 56 views
0

我目前正在使用下面的函数从两个尺寸的图像(240x720)中去除噪点。我目前正在计算机上对此进行计算,但希望实时实施此操作。但是,在我的电脑上,该功能会导致程序明显延迟。有没有其他方法可以从可以实时运行的图像中去除噪点?高斯模糊也许?替代OpenCV fastNlMeansDenoising实时应用程序?

fastNlMeansDenoising(ipmOfLeftLaneRobust, ipmOfLeftLaneRobust,10,7,21); 

回答

0

给出一个函数

fastNlMeansDenoising(InputArray src, OutputArray dst, float h=3, 
    int templateWindowSize=7, int searchWindowSize=21); 

templateWindowSize接近1,过滤器变成一个盒子双边滤波器。

h项趋近于无穷大时,滤镜变为一个框模糊滤镜。

对于任何两个,实现是详尽的。

一个简单的选择是首先尝试两个优化的特例:cv::boxFiltercv::bilateralBlur

+0

框双边过滤器似乎很好,同时保持图像内的对象的边缘。谢谢。 –

0

一个值得考虑的选择可能使用的fastNIMeansDenoising CUDA的版本,因为它提供了显著加速假设你有一个体面的GPU(真对于一般大多数OpenCV的功能)。除此之外,它取决于你处理的是什么类型的噪声,但如果是盐和胡椒噪声,使用中值模糊函数通常会提供良好的结果。如果你的噪音更普遍,高斯模糊是另一个不错的选择。