如何使用opencv“清理”B& W图像?

时间:2013-06-26 17:28:06

标签: c++ image opencv

我有一个二进制图像,但它很乱,我想知道是否有办法“清理”图像。如何/我可以做什么来使用OpenCV将第一个例子变成第二个例子?

  1. https://docs.google.com/file/d/0BzUNc6BOkYrNeVhYUk1oQjFSQTQ/edit?usp=sharing

  2. https://docs.google.com/file/d/0BzUNc6BOkYrNc1hObHlqVkhxRW8/edit?usp=sharing

3 个答案:

答案 0 :(得分:3)

使用B& W图像时,通常的做法是使用image morphology。在您的情况下,您可以提取连接的组件。然后,您只能留下大connected components

您还可以erode图像,以确保数字没有连接到任何噪音。

然而,最强大的方法是利用OCR功能,因为您正在寻找数字。即您可以使用先前的知识来了解重要区域的外观。但在你的例子中,似乎简单的形态就足够了。

答案 1 :(得分:1)

您可以应用link中给出的形态侵蚀和扩张操作。

首先应用侵蚀将消除小的嘈杂区域,第二次扩张操作将恢复被侵蚀的物体区域。

此合并操作称为opening

答案 2 :(得分:0)

嗨,如果这还不太晚...利用形态学和blob过滤... 对于您的图像大小写,请使用Size(30,1)元素关闭形态,然后使用Size(1,25)元素关闭。 在那个过滤器之后,任何小于你的(图像行/ 2)大小的blob应该给出干净的图像。