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调用短信猫控件实现发短信功能实例
Jul 04 Python
Python获取服务器信息的最简单实现方法
Mar 05 Python
简单介绍Python2.x版本中的cmp()方法的使用
May 20 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
Jun 21 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
python实现微信自动回复机器人功能
Jul 11 Python
PyQt5实现暗黑风格的计时器
Jul 29 Python
python psutil监控进程实例
Dec 17 Python
tensorflow 实现自定义layer并添加到计算图中
Feb 04 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
python四种出行路线规划的实现
Jun 23 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
Zend引擎的发展 [15]
2006/10/09 PHP
一次编写,随处运行
2006/10/09 PHP
简单的php 验证图片生成函数
2009/05/21 PHP
php读取excel文件的简单实例
2013/08/26 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
JavaScript进制转换实现方法解析
2020/01/18 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
基于Python对数据shape的常见操作详解
2018/12/25 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
python实现静态web服务器
2019/09/03 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
住宅使用说明书
2014/05/09 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
项目转让协议书
2014/10/27 职场文书