美文网首页
Tesseract ORC进行图片验证码识别教程

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

作者: 奕剑听雨 | 来源:发表于2018-08-13 16:12 被阅读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文件,使用这个方法识别不了,还是找开发注释比较靠谱。

    相关文章

      网友评论

          本文标题:Tesseract ORC进行图片验证码识别教程

          本文链接:https://www.haomeiwen.com/subject/reeubftx.html