Python 3.6 版本 Pytesseract 图像验证码识别

本文首先先说下问题,在代码中引入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

你可能感兴趣的:(Python 3.6 版本 Pytesseract 图像验证码识别)