这是我的问题,我想使用pytesser来获取图片的内容。我的操作系统是Mac OS 10.11,我已经安装了PIL,pytesser,tesseract-ocr引擎和其他支持库,如libpng等。但是当我运行我的代码时,如下所示,会发生错误。
from pytesser import *
import os
image = Image.open('/Users/Grant/Desktop/1.png')
text = image_to_string(image)
print text
接下来是错误消息
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
此外,tesseract-ocr引擎在我的Mac上运行良好,我可以在终端运行它并获得结果。以下是测试图片结果。 tesseract result
有人可以帮我解决这个问题吗?
答案 0 :(得分:8)
打开文件 pytesseract.py 。
我在/Users/yourUser/.virtualenvs/cv/lib/python2.7/site-packages/pytesseract/pytesseract.py
将tesseract_cmd = 'tesseract'
更改为tesseract_cmd = '/usr/local/bin/tesseract'
答案 1 :(得分:8)
幸运的是,我解决了这个问题。
首先,我运行命令
pip install pytesseract
安装包。
但是我收到了'使用pytesser没有这样的文件或目录'的错误消息。
然后我读了这个链接:image_to_string doesn't work in Mac 所以,只需运行以下脚本:
brew link libtiff
brew link libpng
brew link jpeg
brew install tesseract
为我工作〜
答案 2 :(得分:3)
我有同样的问题,但我设法将图像转换为字符串。
使用apt-get
应该可以解决问题:
sudo apt-get install tesseract-ocr
如果您不能在python脚本中使用它,请执行以下操作:
from os import system
system("tesseract -l eng /image.png text.txt")
答案 3 :(得分:2)
您正在获得异常,因为子进程无法找到二进制文件(tesser可执行文件)。
安装过程分为3个步骤:
1. 下载/安装系统级libs / binaries :
对于各种操作系统,这里是help。对于MacOS,您可以使用brew直接安装它。
安装Google Tesseract OCR(附加信息如何安装 Linux,Mac OSX和Windows上的引擎)。你必须能够调用 tesseract命令作为tesseract。例如,如果不是这种情况 因为tesseract不在你的PATH中,你将不得不改变 tesseract.py顶部的“tesseract_cmd”变量。下 Debian / Ubuntu你可以使用包tesseract-ocr。适用于Mac OS用户。 请安装自制软件包tesseract。
使用yum
- 来自SO answer - /usr/bin/yum --enablerepo epel-testing install tesseract.x86_64
2. 安装Python包
pip install pytesseract
3. 最后,您需要在PATH中使用tesseract二进制文件。
或者,您可以在运行时设置它:
import pytesseract
pytesseract.pytesseract.tesseract_cmd = '<path-to-tesseract-bin>'
默认路径'd为/usr/local/bin/tesseract
答案 4 :(得分:1)
对于MacOS和Ubuntu,我遇到了两次相同的问题。这对我有用。希望它可以帮助。
首先,打开终端,然后:
答案 5 :(得分:0)
对于每个人来说可能不是这种情况,但我遇到了类似的问题,这是因为在安装tesseract时遇到错误。 我一直收到错误消息:
Making install in ccutil
/bin/sh: /Applications/Xcode: No such file or directory
make: *** [install-recursive] Error 1
这是因为我之前已将/ Applications / Xcode重命名为/ Applications / Xcode 8,以便我自己更容易区分系统上安装的不同Xcode版本。
我暂时将其重命名为/ Applications / Xcode,然后运行命令
sudo xcode-select --switch /Applications/Xcode.app
然后终于尝试重新安装tesseract,幸好这次没有收到任何错误消息。
brew install tesseract --all-languages
现在Python代码运行正常,我得不到&#34; OSError:[Errno 2]没有这样的文件或目录&#34;错误信息。
答案 6 :(得分:0)
您需要安装tesseract-ocr:
sudo apt-get install tesseract-ocr
在剧本中
from PIL import Image
import os
import pytesseract
text = pytesseract.image_to_string(Image.open(os.path.abspath('test.png')))