使用OpenCV检测特定形状

时间:2013-03-29 00:39:46

标签: opencv

我有一个小小的项目,我想用它来玩电脑视觉。我扫描的文档中有一些单词被圈出,或者更具体地说是由两条平行的水平线包围,每条水平线由两端的曲线连接。类似于小学生工作的单词搜索工作表,但线条清晰,只有横向。

word search worksheets

目标是提取带圆圈的位,然后仅将这些部分传递给OCR进程以获取带圆圈的文本。

我之前使用opencv进行面部识别,使用了一些打包的haar级联。类似的方法是否适用于简单的形状,或者OpenCV中的低级方法是否可以正常工作?

1 个答案:

答案 0 :(得分:2)

如果行总是使用相同(或相似)的颜色,则可以使用inRange函数仅获取行。然后使用findContours函数查找所有圆圈区域的轮廓,而不是用白色像素填充它们,然后在此图像和原始图像上使用bitwise and operation。因此,您将只获得带圆圈的区域(包括线条 - 如果您想避免这种情况,请尝试使用侵蚀和扩展功能)。

  

我之前使用opencv进行面部识别,使用了一些打包的haar级联。类似的方法是否适用于简单的形状,或者OpenCV中的低级方法是否可以正常工作?

我认为可以创建Haar级联,它可以找到带圆圈的区域,但是:

  • 你会得到一个矩形,所以如果文字不是完全水平或完全垂直,你会得到很多额外的(和无用的)像素/字母
  • 我和Gavinb解决方案可能会更快,更简单,更精确