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计算三角函数之atan()方法的使用
May 15 Python
Python实现的密码强度检测器示例
Aug 23 Python
python中map()函数的使用方法示例
Sep 29 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
Dec 03 Python
Python基于辗转相除法求解最大公约数的方法示例
Apr 04 Python
python实现二分类的卡方分箱示例
Nov 22 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
Django:使用filter的pk进行多值查询操作
Jul 15 Python
python字典key不能是可以是啥类型
Aug 04 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
Python面向对象编程之类的概念
Nov 01 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
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
深入解析php模板技术原理【一】
2008/01/10 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
php实现最简单的MVC框架实例教程
2014/09/08 PHP
Joomla使用Apache重写模式的方法
2016/05/04 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
js中作用域的实例解析
2017/03/16 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
三八妇女节超市活动方案
2014/08/18 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
周年庆典答谢词
2015/01/20 职场文书
给病人的慰问信
2015/03/23 职场文书
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL