2017-10-20 112 views
0

我使用OpenCV具有非常高的内核(50和更高)来获得非常夸张的模糊效果。 我得到这些奇怪的线/面积像生成的图像效果。请参阅下图中的墙壁区域。OpenCV模糊创建linesblob像区域

这是固有的模糊在一个非常高的内核大小? 什么是一些技术来消除和消除这种影响?我使用OpenFrameworksofxCV插件。我的代码的相关部分只是

blur(camScaled, 51); 

如果你不熟悉ofxCV本质上是一个桥梁和映射回到底该OpenCV通话。

CV_EXPORTS_W void blur(InputArray src, OutputArray dst, 
        Size ksize, Point anchor=Point(-1,-1), 
        int borderType=BORDER_DEFAULT); 

blured image

+0

输入图像是什么样的?我想这是一个模糊每个RGB层分别的artefact。也许尝试在HSV或类似的色彩空间做这个? –

+0

这是从iPhone摄像头直接读取的帧。从我在图书馆看到的情况来看,这个级别的渠道并没有真正的分离。 –

回答

0

这种效果是因为模糊装置均通过内核的像素值相当正常。

您应该尝试边缘保留滤波器,如双边滤波器。 如果你仍然想使用“经典”模糊,你可以尝试中值模糊,而不是平均模糊,这应该会给你至少一个更加衰减的结果。

+0

是的,我得出了相同的结论,现在使用中值滤波器。由于我只对模糊的效果感兴趣,所以我想知道如果在做滤镜之前添加一个微小的颗粒噪音会使其具有较少的视觉效果。 –

+0

中值滤波器是专门去除这些噪声的,所以它会将它们移除并得到相同的结果。平均值会传播噪音,所以它会变得最糟糕。 (P.s.标记已被接受?) – Moia