9

我正在处理一些扫描的文本图像,我需要突出显示该图像中的所有单词。我知道这个问题等同于查找带有额外空格的子图像。

不能使用 OCR,我只需要用边框勾勒出每个单词。有人可以建议如何使用 OpenCV 来完成它。

我已经尝试阅读有关阈值和分段的信息。我只是在找人指点我一些相关的材料。

4

1 回答 1

21

我认为您的图像有多行文字。在那种情况下,首先你要做的就是检测这些线。

为此,首先使用 Otsu 方法或自适应阈值对图像进行二值化。

然后,您可以使用所谓的“水平直方图”。它本身就像一个直方图,但显示了哪里有线条,哪里有空格。因此,将图像划分为空白行,然后得到每一行。下面是水平直方图的图像。

水平直方图

现在对于每一行,找到水平直方图。在此之前,尝试做一些膨胀和腐蚀,让所有的字母组合在一起。然后你可以在每一行找到连接的组件来获取每个单词。然后画出边界。

下图显示了水平和垂直直方图:

水平和垂直直方图

这个 SOF 可能会有所帮助:如何将图像转换为字符段?

于 2012-10-08T16:42:52.403 回答