【问题标题】:Pytesseract: Error opening data file \\Program Files (x86)\\Tesseract-OCR\\en.traineddataPytesseract:打开数据文件时出错 \\Program Files (x86)\\Tesseract-OCR\\en.traineddata
【发布时间】:2017-07-22 01:55:30
【问题描述】:

我正在尝试在 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))

我收到以下错误:

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')

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

感谢您抽出宝贵时间!

【问题讨论】:

    标签: python tesseract python-tesseract


    【解决方案1】:

    我遇到了同样的问题。我在谷歌上尝试了所有解决方案,但没有成功。最后,我通过替换解决了这个问题。

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

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

    【讨论】:

      【解决方案2】:

      如果你不想设置环境变量,你也可以作为参数传递

      例如:

      首先,进行导入

          import pytessetact
          from PIL import Image
      

      现在配置 pytesseract

          pytesseract.pytesseract.tesseract_cmd = "C:/path_to_your_tesseract.exe"
          tessdata_dir_config = '--tessdata-dir "C:/path_to_your_tessdata_folder"'
      
          pytesseract.image_to_string(image, config=tessdata_dir_config)
      

      【讨论】:

        【解决方案3】:

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

        1. 所有训练好的语言数据都应该保存在TESSDATA_PREFIX, 一个 Windows 环境变量,在您的情况下为 C:\Program Files (x86)\Tesseract-OCR\tessdata

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

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

        希望如此。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-03
          • 1970-01-01
          • 1970-01-01
          • 2015-06-09
          • 2012-04-21
          • 1970-01-01
          • 2010-11-05
          • 2014-05-10
          相关资源
          最近更新 更多