Python 关于执行OCR的提示-未获得预期结果

Python 关于执行OCR的提示-未获得预期结果,python,opencv,ocr,Python,Opencv,Ocr,因此,我有以下图像: 我试图提取三个数组: var a = [30,31,32,35,37,40,44]; var b = [6,7,11,15,18,21,22]; var c = [5,11,15,18,23,37,28]; 我尝试将此图像输入到tesseract~/Desktop/test.png中,但没有成功: 9 % ooenesew @ 5 ‘ 904399 下面是来自ocrad~/Desktop/test.ppm的结果: o ? 28 有没有OCR专家能建议我下一步可以尝试

因此,我有以下图像:

我试图提取三个数组:

var a = [30,31,32,35,37,40,44];
var b = [6,7,11,15,18,21,22];
var c = [5,11,15,18,23,37,28];
我尝试将此图像输入到
tesseract~/Desktop/test.png
中,但没有成功:

9 % ooenesew @
5 ‘ 904399
下面是来自
ocrad~/Desktop/test.ppm
的结果:

o
?
28

有没有OCR专家能建议我下一步可以尝试什么?我很喜欢使用Python/OpenCV,但会尝试任何方法。

如果您的图像总是与示例中的图像类似,您可能需要进行一些整理,以删除任何不是数字的内容(所有黑色背景和圆圈)。那么,在链接问题的公认答案中描述的方法可能足以满足您的需要,因为看起来您没有处理不同的字体和大小:

不是OCR专家,但你知道你总是要以相同的比例无偏斜地扫描图像吗?你知道每个可能的数字(我假设是1-50左右)是什么样子吗?如果是这样的话,你可以将这个问题从OCR减少到特征匹配。嗨,它将始终是非倾斜的,并且具有相同的比例。数字范围实际上是[1-45]。是的,我可能能够进行功能匹配。这似乎是一种非常不寻常的字体,而且您只尝试匹配一组非常有限的字符。所以我想你需要先做。我不确定我该如何可靠地去除黑色。有没有办法在OpenCV中进行模糊选择?从0,0开始,模糊选择所有黑色像素,如果总面积大于某个阈值,则删除模糊区域。您可以使用FindContents获取连接的组件,然后通过过滤不符合特定条件的字符来分离候选字符。在您的例子中,您可以通过获取轮廓的边界框(boundingRect)的大小和/或纵横比来决定是否要将其过滤掉。链接代码已经采用了类似的方法,并实现了基于面积(如果cv2.contourArea(cnt)>50:)和高度(如果h>28:)的基本过滤形式。