0

我有一个二进制图像,但它很乱,我想知道是否有办法“清理”图像。如何/如何使用 OpenCV 将第一个示例图像转换为第二个示例图像?

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

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

4

3 回答 3

3

在处理黑白图像时,通常使用图像形态学。在您的情况下,您可以提取连接的组件。然后你应该只留下大的连接组件

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

但是,最可靠的方法是利用 OCR 功能,因为您正在寻找数字。即,您可以使用您对重要区域应该是什么样子的先验知识。但在你的例子中,简单的形态似乎就足够了。

于 2013-06-26T17:34:39.527 回答
1

您可以应用链接中给出的形态腐蚀和膨胀操作。

首先应用腐蚀将删除小的噪声区域,第二个膨胀操作将恢复被腐蚀的对象区域。

这种组合操作称为打开

于 2013-06-26T17:35:04.087 回答
0

嗨,如果这还不算太晚...利用形态学和斑点过滤...对于您的图像情况,用 Size(30, 1) 的元素进行形态学关闭,然后用 Size(1, 25) 的元素关闭. 之后过滤小于(图像行/ 2)大小的任何斑点应该给出干净的图像。

于 2013-08-06T02:02:13.497 回答