我们正在使用opencv for android实现OCR,一切顺利,直到使用Imgproc.findcontours()找到轮廓的部分,它返回的轮廓与输入图像中的轮廓不同,即:输入图像MNOP第一个轮廓得到来自findcontours()是P输入图像EFGH第一个轮廓来自findcontours()是E(这里是右边)输入图像IJKL第一个轮廓来自findcontours()是J所以它似乎随机提取轮廓我们如何修复这个?因为我们想要回复这个词,因为它完全写在图像中
Abi*_*n K 10
在查找轮廓时,OpenCV似乎没有任何顺序.如果我们需要它排序我们应该手动完成,这是一项额外的任务.
但是出于OCR目的,我也有这个问题.所以我所做的就是找到检测到的轮廓的质心.它可以通过瞬间找到.
或者您可以找到轮廓的边界框,然后找到该边界框的中心.之后ocr将数据放在同一个质心上.
这是我自己准备OCR时使用的方法.您可以在此SOF问题中找到完整的详细信息:OpenCV-Python中的简单数字识别OCR
编辑: FindContours的顺序,(来自vasile的评论)
原始图片:

发现轮廓的顺序:

| 归档时间: |
|
| 查看次数: |
2400 次 |
| 最近记录: |