【问题标题】:word segmentation using opencv [closed]使用opencv进行分词[关闭]
【发布时间】:2012-10-06 23:00:05
【问题描述】:

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

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

我已尝试阅读有关阈值和分段的内容。我只是想找人指出一些相关材料。

【问题讨论】:

  • 我尝试阅读有关阈值和分段的内容。只是想找人指出相关材料而不是一些代码

标签: image-processing opencv image-segmentation


【解决方案1】:

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

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

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

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

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

这个 SOF 可能会有所帮助:How to convert an image into character segments?

【讨论】:

  • 您好 Abid。感谢您的回复。我正在实施您的建议。为了计算直方图,我尝试使用 OpenCV 的 calcHist 方法,但该方法返回一个直方图,其中每个强度值都映射到数字具有这种强度的像素。您能否建议我应该如何获得如上图所示的水平直方图。OpenCV 中是否有与此相关的内容,或者我应该自己实现一些东西。
  • 我尝试通过汇总每一行中的像素值来获得您所显示的那种直方图。这是正确的方法吗?
  • 是的,第二条评论是对的。对每一行/列中的像素值求和以获得直方图。它不是 calcHist 函数中的直方图。
  • 嗨。我能够分割图像。你能建议一种检测 2 个单词图像是否相似的好方法吗。我正在尝试使用 SIFT 和 BFMatcher 但这似乎不太好用对于这种情况。
  • @AbidRahmanK 在计算像素总和之前先对图像进行二值化还是只对灰度图像的像素求和?
猜你喜欢
  • 1970-01-01
  • 2011-12-18
  • 1970-01-01
  • 2013-03-30
  • 2012-04-23
  • 2012-05-17
  • 2014-11-01
  • 2012-06-29
  • 1970-01-01
相关资源
最近更新 更多