为什么Tesseract OCR受两个像素顶行的影响,如何获得一致的结果

时间:2019-03-25 09:38:56

标签: tesseract python-tesseract

我正在尝试从弹出对话框中读取值。 我使用openCV查找信息图标和“关闭”按钮。然后我在两者之间进行裁剪。

这些是我的弹出对话框: Popup90409.png和Popup90411.png enter image description here

enter image description here

我从弹出对话框中裁剪了以下图像:

enter image description here

enter image description here

从另一个SO问题开始,我使用ImageMagic增强图像以获得良好的效果(Is there any way to improve tesseract OCR with small fonts?)。

所以现在我尝试对图像进行OCR:

enter image description here enter image description here

Tesseract正确读取90409,但不读取90411(来自各个图像)。 仔细观察图像,顶部有一条向右延伸的2像素线。 为了查看顶部的2像素行是否可能引起问题,我裁剪了图像,从顶部遗漏了2像素。

因此,从弹出对话框中裁剪出新图像:

enter image description here enter image description here

再次使用上述ImageMagic方法增强以获得更好的OCR结果:

enter image description here enter image description here

现在,Tesseract OCR可以正确读取90411。 但是,现在无法读取90409。

我应该如何处理图像以读取90409和90411?

p.s: Tesseract版本: tesseract 4.0.0-beta.3  leptonica-1.77.0(2018年9月10日,11:35:46)[MSC v.1915 LIB版本x64]   libgif 5.1.4:libjpeg 9b:libpng 1.6.35:libtiff 4.0.9:zlib 1.2.11:libw ebp 1.0.0:libopenjp2 2.3.0  找到AVX  找到上证所

我在Windows上将Tesseract与python结合使用,如下所示:

config = ('--tessdata-dir "tessdata" -l eng --oem 1 --psm 3')
text = pytesseract.image_to_string(Image.open(filename), config=config)

0 个答案:

没有答案