This is my problem, I want to use pytesser to get a picture's contents. My operating system is Mac OS 10.11, and I have already installed PIL, pytesser, tesseract-ocr engine, and other supporting libraries like libpng and so on. But when I run my code, as below, error occurs.
from pytesser import *
import os
image = Image.open('/Users/Grant/Desktop/1.png')
text = image_to_string(image)
print text
Next is the error message
Traceback (most recent call last):
File "/Users/Grant/Documents/workspace/image_test/image_test.py", line 10, in <module>
text = image_to_string(im)
File "/Users/Grant/Documents/workspace/image_test/pytesser/pytesser.py", line 30, in image_to_string
call_tesseract(scratch_image_name, scratch_text_name_root)
File "/Users/Grant/Documents/workspace/image_test/pytesser/pytesser.py", line 21, in call_tesseract
retcode = subprocess.call(args)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Besides, tesseract-ocr engine runs well on my Mac, I can run it in terminal and get the result. Below is the test picture result. tesseract result
Can anyone help me with this question,please?
You're getting exception because subprocess isn't able to find the binaries (tesser executable).
The installation is a 3 step process:
1.Download/Install system level libs/binaries:
For various OS here's the help. For MacOS you can directly install it using brew.
Bash script for installing tesseract-ocr on RHEL/CentOS 7
Using
yum
- from SO answer -/usr/bin/yum --enablerepo epel-testing install tesseract.x86_64
2.Install Python package
3.Finally, you need to have tesseract binary in you PATH.
Or, you can set it at run-time:
The default path 'd be
/usr/local/bin/tesseract