基于tesserocr的验证码识别

tesserocr使用Cython直接与Tesseract的C ++ API集成,允许简单的Pythonic和易于阅读的源代码。

通过在tesseract中处理图像时释放GIL,它可以在与Python的线程模块一起使用时实现真正的并发执行。

tesserocr:https://github.com/sirfz/tesserocr

PiPy:https://pypi.org/project/tesserocr/

tesserocr需要tesseract支持,

下载tesseract:https://digi.bib.uni-mannheim.de/tesseract/

带dev是开发版本,选择未带dev的版本是稳定版本

这里下载了 tesseract-ocr-w64-setup-v4.0.0-rc2.20181008.exe

下载完成后双击,勾选Additional language data(download)选项来安装OCR识别支持的语言包,这样OCR便可以识别多国语言,然后一路点击Next按钮。

安装由于要下载语言包,再加上资源在国外,众所周知的原因,下载时间还是需要蛮久的。。。

偶尔还会报个(404)的错误,点 ok 继续就好了。

总之最后安装完成了,我们进入CMD

输入:pip install tesserocr

我的天,它报错,说我没有Microsoft Visual C++ 14.0

已安装的包里一查,发现我明明有,见鬼了?

不急,这里我们先下载Twisted和配置一下环境变量,

如果已经有Twisted则跳过下面这部分,直接看环境变量设置。

https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted找到Twisted对应操作系统的版本

我是Win64位,下载的是: Twisted‑18.7.0‑cp36‑cp36m‑win_amd64.whl

通过下列命令安装下载的whl文件,路径和文件名别错喔。

pip install C:\Users\Administrator\Downloads\Twisted-18.7.0-cp36-cp36m-win_amd64.whl

环境变量配置,由于我的Tesseract安装在: D:\Python\Anaconda3\Library\Tesseract\Tesseract-OCR

右击我的电脑→属性,打开下示界面:

点击环境变量,双击Path,点击新建,将Tesseract-ORC路径复制到这,确定后退出。

输入

tesseract -v

如果出现版本信息,则配置成功

那么,现在要回头解决,tesseraocr安装失败的问题了,很简单,我们选择手动安装解决这个问题。

进入下载地址:https://github.com/simonflueckiger/tesserocr-windows_build/releases

选择操作系统和python环境对应版本的 whl 包,我选择的是tesserocr-2.2.2-cp36-cp36m-win_amd64.whl,基于tesseract 4.0.0,符合前面我说下载的版本

同样的,依旧是在CMD下,通过下列命令安装:

pip install C:\Users\Administrator\Downloads\tesserocr-2.2.2-cp36-cp36m-win_amd64.whl

然后,终于,安装成功了

迫不及待打开Pycharm

import tesserocr
from PIL import Image

print(tesserocr.tesseract_version())
image = Image.open('t.jpg')
result = tesserocr.image_to_text(image)
print(result)

然后发现它,又又又报错了。

但是版本信息确实打印出来了

于是又百度到了,需要将 Tesseract-OCR 文件夹下的 tessdata 拷贝到 报错的路径 D:\Python\下,

然后发现依旧是错,后来注意到是要和 Python.exe在一个目录内,于是我的Python.exe是在 D:\Python\Anaconda3 

我将tessdata拷贝到此,发现问题解决,图中1364 为测试图片识别出的测试结果。

当然,这个模块功能强大, 更多的请前往:https://github.com/tesseract-ocr/tesseract/wiki/Documentation

猜你喜欢

转载自blog.csdn.net/Fowee/article/details/83054098