Tesseract RuntimeError:识别图片失败

时间:2017-05-12 14:42:00

标签: python tesseract python-tesseract

我是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'

1 个答案:

答案 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

裁剪的下方图像

enter image description here

<{1>} Windows 10中的

,输出正确。

enter image description here

为了测试,如果上述图像在您的机器中不起作用,您可以尝试下面有编辑过的图像,其中有更多的上边距和下边距。即使使用默认的Tesseract 4.0.0a--psm 3模式,此功能也可以使用。

enter image description here