Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用OpenCV检测特定形状_Opencv - Fatal编程技术网

用OpenCV检测特定形状

用OpenCV检测特定形状,opencv,Opencv,我有一个小项目,我想用它来玩计算机视觉。我扫描了一个文档,其中一些单词被圈起来,或者更具体地说,被两条平行的水平线包围,每一端都有曲线连接。类似于小学儿童使用的单词搜索工作表,但线条更清晰,只有水平线 目标是提取出带圆圈的位,然后仅将这些部分传递给OCR进程以获得带圆圈的文本 我以前使用过opencv,使用一些打包的haar级联进行面部识别。类似的方法是否适用于简单的形状,或者OpenCV中是否有较低级别的方法可以很好地工作?检测图像中线条的一种好的、简单的方法是Hough变换。它基本上充当行

我有一个小项目,我想用它来玩计算机视觉。我扫描了一个文档,其中一些单词被圈起来,或者更具体地说,被两条平行的水平线包围,每一端都有曲线连接。类似于小学儿童使用的单词搜索工作表,但线条更清晰,只有水平线

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


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

检测图像中线条的一种好的、简单的方法是Hough变换。它基本上充当行参数的累积缓冲区。这应该能够相当容易地检测出你的长平行线,并通过阈值区分它们和字母。然后,您可以遍历这些线,并从平行线对中提取一个区域来分割字母


检测图像中线条的一种简单的好方法是Hough变换。它基本上充当行参数的累积缓冲区。这应该能够相当容易地检测出你的长平行线,并通过阈值区分它们和字母。然后,您可以遍历这些线,并从平行线对中提取一个区域来分割字母


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

我以前使用过opencv,使用一些打包的haar级联进行面部识别。类似的方法是否适用于简单形状,或者OpenCV中是否有较低级别的方法可以很好地工作

我认为可以创建Haar cascade,它将找到圆形区域,但是:

  • 您将得到矩形,因此,如果文本不是完全水平或完全垂直的,您将获得大量额外的(和无用的)像素/字母
  • mine和Gavinb解决方案可能会更快、更简单、更精确

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

我以前使用过opencv,使用一些打包的haar级联进行面部识别。类似的方法是否适用于简单形状,或者OpenCV中是否有较低级别的方法可以很好地工作

我认为可以创建Haar cascade,它将找到圆形区域,但是:

  • 您将得到矩形,因此,如果文本不是完全水平或完全垂直的,您将获得大量额外的(和无用的)像素/字母
  • mine和Gavinb解决方案可能会更快、更简单、更精确
可能的重复或可能的重复