首页 > 解决方案 > 为什么使用 pytesseract 从图像中读取文本不起作用?

问题描述

这是我的代码:

import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'F:\Installations\tesseract'
print(pytesseract.image_to_string('images/meme1.png', lang='eng'))

这是图像:
图片

输出如下:

GP.
ed <a

= va
ay Roce Thee .
‘ , Pe ship
   
RCAC Tm alesy-3

Pein Reg a

years —
? >
ee bs

我在输出中看到了 years 这个词,所以它确实识别了文本,但为什么它不能完全识别它?

标签: pythonpython-tesseractimage-text

解决方案


在杂乱的场景中,OCR 仍然是一个非常棘手的问题。如果不对图像进行一些预处理,您可能不会获得更好的结果。在这种特定情况下,首先对图像进行阈值处理是有意义的,仅提取白色区域(即文本)。您可以为此查看 opencv:https ://docs.opencv.org/3.4/d7/d4d/tutorial_py_thresholding.html

此外,在您的图像中,任意位置只有两行文本,因此使用页面分割模式可能是有意义的:https ://github.com/tesseract-ocr/tesseract/issues/434


推荐阅读