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 相关文章推荐
python 装饰器功能以及函数参数使用介绍
Jan 27 Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 Python
Python使用ntplib库同步校准当地时间的方法
Jul 02 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
python 定义给定初值或长度的list方法
Jun 23 Python
Django进阶之CSRF的解决
Aug 01 Python
python下载微信公众号相关文章
Feb 26 Python
python实现数据分析与建模
Jul 11 Python
python实现按关键字筛选日志文件
Dec 24 Python
python打印文件的前几行或最后几行教程
Feb 13 Python
Python面向对象编程之类的概念
Nov 01 Python
Python中time与datetime模块使用方法详解
Mar 31 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
一个简易需要注册的留言版程序
2006/10/09 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
Python遍历目录的4种方法实例介绍
2015/04/13 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
Python模块搜索路径代码详解
2018/01/29 Python
python实现类之间的方法互相调用
2018/04/29 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
平面设计岗位职责
2013/12/14 职场文书
如何撰写岗位职责
2014/02/01 职场文书
化工见习报告范文
2014/10/31 职场文书
保护动物的宣传语
2015/07/13 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书