Pytesseract:打开数据文件 \\Program Files (x86)\\Tesseract-OCR\\en.traineddata 时出错

sup*_*aee 5 python tesseract python-tesseract

我正在尝试在 Jupyter Notebook 上使用 pytesseract。

  • Windows 10 x64
  • 使用管理权限运行 Jupyter Notebook(Anaconda3、Python 3.6.1)
  • 包含 TIFF 文件的工作目录位于不同的驱动器 (Z:)

当我运行以下代码时:

try:
    import Image
except ImportError:
    from PIL import Image
import pytesseract

pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe'

tessdata_dir_config = '--tessdata-dir "C:\\Program Files (x86)\\Tesseract-OCR\\tessdata"'

print(pytesseract.image_to_string(Image.open('Multi_page24bpp.tif'), lang='en', config = tessdata_dir_config))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

TesseractError                            Traceback (most recent call last)
<ipython-input-37-c1dcbc33cde4> in <module>()
     11 # tessdata_dir_config = '--tessdata-dir "C:\\Program Files (x86)\\Tesseract-OCR\\tessdata"'
     12 
---> 13 print(pytesseract.image_to_string(Image.open('Multi_page24bpp.tif'), lang='en'))
     14 # print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra'))

C:\Users\cpcho\AppData\Local\Continuum\Anaconda3\lib\site-packages\pytesseract\pytesseract.py in image_to_string(image, lang, boxes, config)
    123         if status:
    124             errors = get_errors(error_string)
--> 125             raise TesseractError(status, errors)
    126         f = open(output_file_name, 'rb')
    127         try:

TesseractError: (1, 'Error opening data file \\Program Files (x86)\\Tesseract-OCR\\en.traineddata')
Run Code Online (Sandbox Code Playgroud)

我发现这两个参考文献很有帮助,但我遗漏了一些东西: https: //github.com/madmaze/pytesseract/issues/50 https://github.com/madmaze/pytesseract/issues/64

感谢您抽出时间来讨论这个问题!

the*_*ere 1

从您的帖子中观察到两个可能的问题。

  1. 所有经过训练的语言数据应保存在TESSDATA_PREFIXWindows 环境变量 中,C:\Program Files (x86)\Tesseract-OCR\tessdata在您的情况下为 at 。

  2. 训练tesseract好的英文数据被命名为eng.traineddata(即'eng'),除非您修改了它的名称。有关更多信息,请参阅此Tesseract 数据文件。

此外,为了pytesseract读取图像文件,如果无法找到图像文件,Image.open()您可以包含完整的文件路径(例如)。'z:\\path\\to\\image'

希望如此。