如何在OpenCV中去除二进制图像噪声?

5

将图像转换为二进制图像(黑白)后,如果存在噪音,我该如何去除这些不需要的噪点。

您可以看到下面的图像在黑色区域中有一些白色噪点,请问如何使用OpenCV去除噪声。

http://img857.imageshack.us/img857/999/blacknoise.jpg

2个回答

7
你可以使用ErodeDilate来实现它。
cvErode(in,eroded,NULL,4)之后,您的图像如下所示: erodedcvDilate(eroded,dilated,NULL,4)之后,您的图像如下所示: dilated

谢谢,我之前找到过这篇文章,但是我不理解这里在干什么。 - user1190910
@user1190910 这篇文章不是很好,所以我已经编辑了我的问题。你只需要使用这两个调用就可以得到非常好的结果。 - Piotr Praszmo

2
您还可以使用floodFill,将角落像素作为种子(或其他您知道是非对象的像素)传递。
您可以在这里看到使用侵蚀、扩张和洪水填充的示例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接