我是tesseract的新手,在尝试使用外部训练数据集时出现此错误。
tesserocr.pyx in tesserocr.image_to_text (tesserocr.cpp:20994)()
RuntimeError: Failed recognize picture
我不知道如何排除故障。问题出在外部图书馆,但除此之外,我不知道。任何指导都表示赞赏。
我使用的是Ubuntu 16.04 LTS,x86_64,Python 2.7和Tesserocr包装器。外部库来自:https://github.com/arturaugusto/display_ocr。
我只是将letsgodigital.traineddata文件粘贴到:
/usr/share/tesseract-ocr/tessdata
代码:
import tesserocr
image = Image.fromarray(im)
print tesserocr.image_to_text(image, lang = 'letsgodigital', psm=8, )
语言检查
print tesserocr.get_languages()
(u'/usr/share/tesseract-ocr/tessdata/', [u'letsgodigital', u'equ', u'osd', u'eng'])
使用默认的英语库运行代码
print tesserocr.image_to_text(image, lang = 'eng', psm=8, )
Tesseract版本信息:
tesserocr.tesseract_version()
u'tesseract 3.04.01\n leptonica-1.73\n libgif 5.1.2 : libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8 : libwebp 0.4.4 : libopenjp2 2.1.0\n'
答案 0 :(得分:0)
错误RuntimeError: Failed recognize picture
表示图片无法加载。您可以尝试下面以确保'eng'首先工作。然后将自定义语言指定为7段数字显示。
import tesserocr
from PIL import Image
image = Image.open('english_text.png')
digits = tesserocr.image_to_text(image) # print ocr text from image
如果您还没有这样做,还要为受过训练的语言数据路径设置TESSDATA_PREFIX
。
export TESSDATA_PREFIX=/usr/share/tesseract-ocr/tessdata
希望得到这个帮助。
的更新:强>
测试了从sample,
裁剪的下方图像 <{1>}Windows 10
中的,输出正确。
为了测试,如果上述图像在您的机器中不起作用,您可以尝试下面有编辑过的图像,其中有更多的上边距和下边距。即使使用默认的Tesseract 4.0.0a
和--psm 3
模式,此功能也可以使用。