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的Flask框架下收发电子邮件的教程
Apr 21 Python
Python中统计函数运行耗时的方法
May 05 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
Python实现多属性排序的方法
Dec 05 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
Sep 18 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 Python
python实现杨辉三角的几种方法代码实例
Mar 02 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
基于mysql的bbs设计(四)
2006/10/09 PHP
php访问查询mysql数据的三种方法
2006/10/09 PHP
PHP中SESSION使用中的一点经验总结
2012/03/30 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
Python的组合模式与责任链模式编程示例
2016/02/02 Python
python django 访问静态文件出现404或500错误
2017/01/20 Python
python实现简单http服务器功能
2018/09/17 Python
Django的models模型的具体使用
2019/07/15 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
Django视图扩展类知识点详解
2019/10/25 Python
Python如何给你的程序做性能测试
2020/07/29 Python
法国珠宝店:CLEOR
2017/01/29 全球购物
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
android面试问题与答案
2016/12/27 面试题
学生周末回家住宿长期请假条
2014/02/15 职场文书
班班通校本培训方案
2014/03/12 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
初三班主任寄语大全
2014/04/04 职场文书
高中学校对照检查材料
2014/08/31 职场文书
委托培训协议书
2014/11/17 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
网吧管理制度范本
2015/08/05 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
Python图像处理库PIL详细使用说明
2022/04/06 Python
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL