Pytesseract:打开数据文件时出错 \\Program Files (x86)\\Tesseract-OCR\\en.traineddata
Pytesseract: Error opening data file \\Program Files (x86)\\Tesseract-OCR\\en.traineddata
我正在尝试在 Jupyter Notebook 上使用 pytesseract。
- Windows 10 x64
- 运行 具有管理权限的 Jupyter 笔记本(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
感谢您抽出宝贵时间!
根据您的 post,观察到两个可能的问题。
所有训练好的语言数据都要保存在TESSDATA_PREFIX
,
一个 Windows 环境变量,在你的例子中是 C:\Program Files
(x86)\Tesseract-OCR\tessdata
。
训练好的tesseract
英文数据被命名为eng.traineddata
(即'eng'
),除非你修改了它的名字。请参阅此 Tesseract Data Files 了解更多信息。
此外,对于pytesseract
读取图像文件Image.open()
,如果图像文件无法定位,您可以包括完整的文件路径(例如'z:\path\to\image'
)。
希望到此。
我遇到了同样的问题。我在 Google 上尝试了所有解决方案,但没有成功。最后我通过替换解决了问题
pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
和
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'.
如果你不想设置环境变量,你也可以作为参数传递
例如:
首先,进行导入
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)
第 1 天 - 所有作品;
第 2 天 - 这个错误;
在第二台电脑上一切正常......
5 小时后:===我在脑海中找到了答案===
从“C:\Program Files\Tesseract-OCR\tessdata”复制'eng.traineddata'到“C:\Program Files\Tesseract-OCR”
它的工作=\
我正在尝试在 Jupyter Notebook 上使用 pytesseract。
- Windows 10 x64
- 运行 具有管理权限的 Jupyter 笔记本(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
感谢您抽出宝贵时间!
根据您的 post,观察到两个可能的问题。
所有训练好的语言数据都要保存在
TESSDATA_PREFIX
, 一个 Windows 环境变量,在你的例子中是C:\Program Files (x86)\Tesseract-OCR\tessdata
。训练好的
tesseract
英文数据被命名为eng.traineddata
(即'eng'
),除非你修改了它的名字。请参阅此 Tesseract Data Files 了解更多信息。
此外,对于pytesseract
读取图像文件Image.open()
,如果图像文件无法定位,您可以包括完整的文件路径(例如'z:\path\to\image'
)。
希望到此。
我遇到了同样的问题。我在 Google 上尝试了所有解决方案,但没有成功。最后我通过替换解决了问题
pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
和
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'.
如果你不想设置环境变量,你也可以作为参数传递
例如:
首先,进行导入
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)
第 1 天 - 所有作品; 第 2 天 - 这个错误; 在第二台电脑上一切正常...... 5 小时后:===我在脑海中找到了答案===
从“C:\Program Files\Tesseract-OCR\tessdata”复制'eng.traineddata'到“C:\Program Files\Tesseract-OCR”
它的工作=\