Findcontours检索未分类的轮廓

Hen*_*mad 4 ocr opencv

我们正在使用opencv for android实现OCR,一切顺利,直到使用Imgproc.findcontours()找到轮廓的部分,它返回的轮廓与输入图像中的轮廓不同,即:输入图像MNOP第一个轮廓得到来自findcontours()是P输入图像EFGH第一个轮廓来自findcontours()是E(这里是右边)输入图像IJKL第一个轮廓来自findcontours()是J所以它似乎随机提取轮廓我们如何修复这个?因为我们想要回复这个词,因为它完全写在图像中

Abi*_*n K 10

在查找轮廓时,OpenCV似乎没有任何顺序.如果我们需要它排序我们应该手动完成,这是一项额外的任务.

但是出于OCR目的,我也有这个问题.所以我所做的就是找到检测到的轮廓的质心.它可以通过瞬间找到.

使用Moments查找质心

或者您可以找到轮廓的边界框,然后找到该边界框的中心.之后ocr将数据放在同一个质心上.

这是我自己准备OCR时使用的方法.您可以在此SOF问题中找到完整的详细信息:OpenCV-Python中的简单数字识别OCR

编辑: FindContours的顺序,(来自vasile的评论)

原始图片:

在此输入图像描述

发现轮廓的顺序:

在此输入图像描述

  • "在SOF中表达感激之情的最佳方式是赞成或接受答案" - 有人这么说.可能是,你可以做到这一点. (2认同)