为什么Pytesseract不能识别黑色的纯白色文字?

时间:2018-03-23 18:13:33

标签: python python-2.7 ocr tesseract

我有很多像下面的图像,我需要使用pytesseract来获取白色文本:

enter image description here

我使用以下代码,但结果并不令人印象深刻:

import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'
im = Image.open('topLine.png')
print pytesseract.image_to_string(im)

结果:

Rouse Services | Renta Dastbonrd | Blei Rental



RJ |G | B (mmm @

所以我认为原因是图像内部没有文字。我用最重要的文本裁剪了图像的一部分给我,并对它运行相同的代码:

enter image description here

然而,我得到的只是空白。 Pytesseract根本找不到任何文字。我做错了什么?

1 个答案:

答案 0 :(得分:0)

回答你原来的问题是我相信他们的训练数据集只是在黑色文本白色背景上,所以机器学习算法不会反过来也就不足为奇了。现在对于解决方案,如果每次带有白色文本的黑盒子都在图像中的特定位置,我会将其裁剪掉,反转它,然后将其放回到同一位置。否则你可以使用erode / dilate工具和定制的内核来找到这些黑盒子,并基本上在图像的那一部分上创建一个遮罩。使用这个遮罩你可以说嘿python,这里是一个黑色的盒子,白色文字反转它。根据我的经验,pytesseract总是需要至少一些图像处理(如果不是很多)才能获得良好的输出,但即使使用最搞砸的图像,我也能够获得高于93%的精度。