本文首先先说下问题,在代码中引入Pytesseract块时,总是出现错误
程序代码很简单如下:
from PIL import Image
import pytesseract
text = pytesseract.image_to_string(Image.open("pic.gif"))
print(text)
结果呢,肯定是报错,而且这个错误死活过不去
File "D:\Program Files\Python36\lib\site-packages\pytesseract\pytesseract.py", line 46, in run_tesseract
proc = subprocess.Popen(command, stderr=subprocess.PIPE)
File "D:\Program Files\Python36\lib\subprocess.py", line 707, in __init__
restore_signals, start_new_session)
File "D:\Program Files\Python36\lib\subprocess.py", line 992, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
下面解决问题,你所需要的准备工作,Window下图像识别想用Python处理的
真的是跳了所有的坑,不管是中文CSDN的解释还是StackOverflow英文上面的,首先要确保:
1、安装Pillow,命令pip install Pillow,安装完毕会在Python文件夹下Lib\site-packages\pytesseract这个文件夹,里面有pytesseract.py文件
2、确保,确保,确保 安装了 Tesseract-OCR 这个好像没有64、32的区别
本人Python用的64位,安装这个OCR时候,看到用的是32位版本的最后没问题,安装后,自动生成环境变量,查看自己环境变量里是否有tesseract的路径
3、如果如果上两步你完成了,那么你可以找一个图片测试了,cmd中输入tesseract,会出现下面提示,就没问题了
测试tesseract
4、你甚至可以在D盘找一个图片,然后测试一下这个工具强大的功能,比如识别一个验证码图片上的数字,图片路径为D:/pic.gif
测试图片如下:
验证码图片如下
5、在cmd命令中输入命令 tesseract d:/pic.gif result
什么意思呢?就是将当前图片识别出的结果,放到result.txt文件中,路径是当前路径,结果完美,没问题!!!
识别结果
以上都说明没问题啊,但是但是问题来了,我在Pycharm中为什么就一直执行失败,
1.提示subprocess问题,我查着了各种 “火坑“,有的说包不兼容,有的说subprocess.py文件路径有问题,你的Python路径”/“ 和”\“双反斜杠有问题,有的说pytesseract有问题,最终结果就是
cmd可以运行,PyCharm运行有问题,呵呵呵呵呵呵呵呵哒
2、有的人说环境变量好的,为什么Pycharm执行不了报错??
这里写图片描述
我就尝试着打开pytesseract.py的文件,找到tesseract这个环境变量设置的地方,修改路径为:
tesseract_cmd = ‘D:\Program Files\Tesseract-OCR\tesseract.exe’
环境变量tesseract在系统Path中 也是这个路径,这下总可以了吧,点开,结果还是错误,错误原因还是这个!!!!!!
我是郁闷的,我试着更改环境变量设置的地方,修改路径为:
tesseract_cmd = ‘D:/Program Files/Tesseract-OCR/tesseract.exe’ 有些人甚至没明白看出来区别,对就是斜杠方向
试着运行了一把,大功告成,此时此刻我的内心是崩溃的!!!!!!,总算成功了
大功告成
转自 :https://blog.csdn.net/u010134642/article/details/78747630?utm_source=copy