Tesseract ORC进行图片验证码识别教程

2018-08-13  本文已影响321人  奕剑听雨

原理:直接用python实现验证码识别有些困难,但是可以通过第三方软件的辅助来实现,就是Tesseract ORC.下载地址:https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha-for-windows

下载完成后安装tips:

image.png image.png

可以选择多个包,包括数字,英语,中文,其他乱七八糟的就别选了,下载训练包要很久。

如果是默认安装的,安装完成后Tesseract ORC位于C:\Program Files (x86)\Tesseract-OCR

进入环境变量配置,分别将上述路径配置到path环境变量和新建的系统变量TESSDATA_PREFIX

image.png

最后,进入命令行模式,输入tesseract –v能正确显示版本信息,表示环境变量配置正确,否则自行检查环境变量。

命令行中进行识别的命令为:

tesseract img_path output_path –l eng –psm 7

其中img_path 为图片保存路径,output_path为识别后内容保存txt文件路径,不需要txt后缀

至此,外部软件Tesseract ORC已经安装完毕,可以知道,当前是有输入—验证码保存路径,有输出结果txt文件,那么只需要读取txt文件内容即可获得图片识别结果了。

以下是一个封装识别方法,在安装好Tesseract ORC的情况下使用即可。

安装pytesseract库及PIL库(pip install即可)

pytesseract作用是提供接口处理图片文字识别。

PIL作用是打开图片文件,并进行灰度、二值化处理。

image.png

其中tesseract_cmd为Tesseract –ORC目录,要根据安装路径配置

务必保证环境变量中有配置字符识别库TESSDATA_PREFIX

方法传入图片路径即可获得验证码内容(这种只能识别简单的验证码,如白底少干扰, image.png

类似这种还需要更加复杂的图片颜色处理才能识别,或者下载特定字符训练库)

在UI****自动化中实现验证码识别:

两种方法:1、通过解析验证码图片URL使用requests库下载图片进行处理

2、通过截图,获取验证码所在位置截图,保存后进行处理。

结语:识别图片文字有时候需要对图片的灰度、二值化处理比较多,这里不做展开,简单的验证码使用这个方法就可以识别了。现在有些验证码比较丧心病狂决然是gif文件,使用这个方法识别不了,还是找开发注释比较靠谱。

上一篇下一篇

猜你喜欢

热点阅读