【问题标题】:Why can't Pytesseract recognize plain white text on black?为什么 Pytesseract 不能识别黑底白字?
【发布时间】:2018-03-23 18:13:33
【问题描述】:

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

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

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 @

所以我认为原因是图像中的非文本。我裁剪了图像中对我来说最重要的文本部分,并针对它运行了相同的代码:

但是,我得到的只是空白。 Pytesseract 根本没有找到任何文本。我做错了什么?

【问题讨论】:

    标签: python python-2.7 ocr tesseract


    【解决方案1】:

    要回答您最初的问题,我相信他们的训练数据集仅在黑色文本白色背景上,因此机器学习算法不会反之也就不足为奇了。现在对于解决方案,如果带有白色文本的黑框每次都位于图像中的特定位置,我会将其裁剪掉,反转它,然后将其放回同一位置。否则,您可以使用带有自定义内核的腐蚀/扩张工具来找到这些黑匣子,并实质上在图像的该部分上创建一个遮罩。使用这个遮罩,你可以说嘿 python,这是一个带有白色文本的黑框。根据我的经验,pytesseract 总是需要至少一些图像处理(如果不是很多)来获得良好的输出,但即使是最糟糕的图像,我也能够获得 93% 以上的准确度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      • 2014-10-28
      相关资源
      最近更新 更多