Pytesseract: Error al abrir el archivo de datos \\ Archivos de progtwig (x86) \\ Tesseract-OCR \\ en.traineddata

Estoy tratando de usar pytesseract en Jupyter Notebook.

  • Windows 10 x64
  • Ejecución del cuaderno Jupyter (Anaconda3, Python 3.6.1) con privilegios administrativos
  • El directorio de trabajo que contiene el archivo TIFF está en una unidad diferente (Z 🙂

Cuando corro el siguiente código:

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

Obtuve el siguiente error:

 TesseractError Traceback (most recent call last)  in () 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') 

Me parecieron útiles estas dos referencias, pero me falta algo: https://github.com/madmaze/pytesseract/issues/50 https://github.com/madmaze/pytesseract/issues/64

¡Gracias por su tiempo en esto!

Desde tu post, observaste dos posibles problemas.

  1. Todos los datos de idioma entrenados deben guardarse en TESSDATA_PREFIX , una variable de entorno de Windows, que se encuentra en C:\Program Files (x86)\Tesseract-OCR\tessdata en su caso.

  2. Los datos de inglés entrenados por tesseract se denominan eng.traineddata (es decir, 'eng' ) a menos que haya modificado su nombre. Consulte estos archivos de datos de Tesseract para obtener más información.

Además, para que pytesseract lea el archivo de imagen Image.open() , puede incluir la ruta completa del archivo (por ejemplo, 'z:\\path\\to\\image' ) si el archivo de imagen no puede ubicarse.

Espero a esto.

Me enfrenté al mismo problema. Probé todas las soluciones en Google, sin éxito. Finalmente, resolví el problema reemplazando.

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

con

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