python利用Tesseract识别验证码的方法示例


Posted in Python onJanuary 21, 2019

无论是是自动化登录还是爬虫,总绕不开验证码,这次就来谈谈python中光学识别验证码模块tesserocrpytesseracttesserocrpytesseract是Python的一个OCR识别库,但其实是对tesseract做的一层Python API封装,pytesseract是Google的Tesseract-OCR引擎包装器;所以它们的核心是tesseract,因此在安装tesserocr之前,我们需要先安装tesseract

下载安装

下载地址:https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v4.0.0.20181030.exe

下载完成后,双击安装,可以勾选Additional language data(download)选项来安装OCR识别支持的语言包,但下载语言包实在是慢,我们可以直接从https://github.com/tesseract-ocr/tessdata/下载zip的语言包压缩文件,解压后将tessdata-master中的文件复制到Tesseract的安装目录C:\Program Files (x86)\Tesseract-OCR\tessdata目录下,最后我们配置下环境变量,我们将C:\Program Files (x86)\Tesseract-OCR添加到环境变量中。进入命令提示符,输入tesseract,显示下图结果,说明配置完成

python利用Tesseract识别验证码的方法示例

查看安装了的语言包:tesseract --list-langs

python利用Tesseract识别验证码的方法示例

显示我一共安装了167种语言包,里边包含英文或者其他字符。

测试

实验用的二维码

python利用Tesseract识别验证码的方法示例

基本使用语法
tesseract image.png result (tesseract 图片名称 生成文件名称)

结果

python利用Tesseract识别验证码的方法示例

由结果来看,识别出来了P、2和X,但是把C识别成了G,识别度还是比较高,接下来看在python中的使用

python引入tesseract

在python下使用pip命令即可完成下载安装 pip install pytesseract

识别验证码脚本

import pytesseract
from PIL import Image
im=Image.open('pin.png')
print(pytesseract.image_to_string(im))

结果

python利用Tesseract识别验证码的方法示例

这样识别的结果同样跟上文一样,个别字符识别的不是很准确

图像处理

现在网站上的二维码设计的通常很难复杂,如果直接识别的话很难识别出来,下面这段代码是进行灰度处理和二值化

import pytesseract
from PIL import Image
im=Image.open('5.jpg')
#进行置灰处理
im=im.convert('L')
#这个是二值化阈值
threshold=150
table=[]
for i in range(256):
 if i<threshold:
  table.append(0)
 else:
  table.append(1)
#通过表格转换成二进制图片,1的作用是白色,0就是黑色
im=im.point(table,"1")
im.show()
print(pytesseract.image_to_string(im))

原图

python利用Tesseract识别验证码的方法示例

置灰和二值化后

python利用Tesseract识别验证码的方法示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现网站的模拟登录
Jan 04 Python
Python机器学习之决策树算法
Dec 22 Python
python中数据爬虫requests库使用方法详解
Feb 11 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
Python List cmp()知识点总结
Feb 18 Python
用python打印菱形的实操方法和代码
Jun 25 Python
Django choices下拉列表绑定实例
Mar 13 Python
Python使用Selenium实现淘宝抢单的流程分析
Jun 23 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
Jul 28 Python
使用anaconda安装pytorch的实现步骤
Sep 03 Python
python如何做代码性能分析
Apr 26 Python
对python过滤器和lambda函数的用法详解
Jan 21 #Python
利用Python正则表达式过滤敏感词的方法
Jan 21 #Python
Python 实现王者荣耀中的敏感词过滤示例
Jan 21 #Python
opencv python统计及绘制直方图的方法
Jan 21 #Python
python numpy 按行归一化的实例
Jan 21 #Python
python树莓派红外反射传感器
Jan 21 #Python
python实现自动解数独小程序
Jan 21 #Python
You might like
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
python中selenium库的基本使用详解
2020/07/31 Python
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
承认错误的检讨书
2014/01/30 职场文书
抄作业检讨书
2014/02/17 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
代理协议书范本
2014/04/22 职场文书
2015学校年度工作总结
2015/05/11 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书