Python验证码识别处理实例


Posted in Python onDecember 28, 2015

一、准备工作与代码实例
(1)安装PIL:下载后是一个exe,直接双击安装,它会自动安装到C:\Python27\Lib\site-packages中去,
(2)pytesser:下载解压后直接放C:\Python27\Lib\site-packages(根据你安装的Python路径而不同),同时,新建一个pytheeer.pth,内容就写pytesser,注意这里的内容一定要和pytesser这个文件夹同名,意思就是pytesser文件夹,pytesser.pth,及内容都要一样!
(3)Tesseract OCR engine下载:下载后解压,tessdata文件夹,用其替换掉pytesser解压后的tessdata文件夹即可。

二、验证
(1)原理:
验证码图像处理

验证码图像识别技术主要是操作图片内的像素点,通过对图片的像素点进行一系列的操作,最后输出验证码图像内的每个字符的文本矩阵。

  • 1、读取图片
  • 2、图片降噪
  • 3、图片切割
  • 4、图像文本输出

(2)验证字符识别

验证码内的字符识别主要以机器学习的分类算法来完成,目前我所利用的字符识别的算法为KNN(K邻近算法)和SVM (支持向量机算法),后面我 会对这两个算法的适用场景进行详细描述。

  • 1、获取字符矩阵
  • 2、矩阵进入分类算法
  • 3、输出结果

要验证的图片如下:

Python验证码识别处理实例

(3)、简单的命令:

from pytesser import * 
image = Image.open('1.jpg') # Open image object using PIL 
print image_to_string(image)  # Run tesseract.exe on image

然后运行:

Python验证码识别处理实例

或者直接:

print image_file_to_string('fnord.tif')

同样能输出结果!
(4)、复杂一点的
上面的只能对一些比较简单的做处理,一
原理:彩色转灰度,灰度转二值,二值图像识别

# 验证码识别,此程序只能识别数据验证码 
import Image 
import ImageEnhance 
import ImageFilter 
import sys 
from pytesser import * 
# 二值化 
threshold = 140 
table = [] 
for i in range(256): 
 if i < threshold: 
  table.append(0) 
 else: 
  table.append(1) 
 
#由于都是数字 
#对于识别成字母的 采用该表进行修正 
rep={'O':'0', 
 'I':'1','L':'1', 
 'Z':'2', 
 'S':'8' 
 }; 
 
def getverify1(name):   
 #打开图片 
 im = Image.open(name) 
 #转化到灰度图 
 imgry = im.convert('L') 
 #保存图像 
 imgry.save('g'+name) 
 #二值化,采用阈值分割法,threshold为分割点 
 out = imgry.point(table,'1') 
 out.save('b'+name) 
 #识别 
 text = image_to_string(out) 
 #识别对吗 
 text = text.strip() 
 text = text.upper();  
 for r in rep: 
  text = text.replace(r,rep[r])  
 #out.save(text+'.jpg') 
 print text 
 return text 
getverify1('1.jpg') #注意这里的图片要和此文件在同一个目录,要不就传绝对路径也行

运行后效果:

Python验证码识别处理实例

以上就是本文的全部内容,希望对大家的学习有所帮助。

Python 相关文章推荐
50行代码实现贪吃蛇(具体思路及代码)
Apr 27 Python
Python跳出循环语句continue与break的区别
Aug 25 Python
Python异常学习笔记
Feb 03 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 Python
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
Python提取网页中超链接的方法
Sep 18 Python
分析Python读取文件时的路径问题
Feb 11 Python
详解Python读取yaml文件多层菜单
Mar 23 Python
Win10下python 2.7与python 3.7双环境安装教程图解
Oct 12 Python
python 实现目录复制的三种小结
Dec 04 Python
用python解压分析jar包实例
Jan 16 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
Dec 25 #Python
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 #Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
Dec 25 #Python
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 #Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 #Python
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 #Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 #Python
You might like
Zend 输出产生XML解析错误
2009/03/03 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
php强制更新图片缓存的方法
2015/02/11 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
flask框架视图函数用法示例
2018/07/19 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
python爬虫之自制英汉字典
2019/06/24 Python
python pandas模块基础学习详解
2019/07/03 Python
python数据类型强制转换实例详解
2020/06/22 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
2020/09/30 Python
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
银河香水:Galaxy Perfume
2019/03/25 全球购物
小学数学课后反思
2014/04/23 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python