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随机生成指定长度密码的方法
Apr 04 Python
用Python生成器实现微线程编程的教程
Apr 13 Python
Python fileinput模块使用实例
Jun 03 Python
Python与Java间Socket通信实例代码
Mar 06 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
python批量赋值操作实例
Oct 22 Python
使用Python的toolz库开始函数式编程的方法
Nov 15 Python
python使用Plotly绘图工具绘制水平条形图
Mar 25 Python
python关于变量名的基础知识点
Mar 03 Python
Python基于gevent实现高并发代码实例
May 15 Python
Python图像处理二值化方法实例汇总
Jul 24 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 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下删除字符串中HTML标签的函数
2008/08/27 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
使用Python生成XML的方法实例
2017/03/21 Python
Python实现的购物车功能示例
2018/02/11 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
实习销售业务员自我鉴定
2013/09/21 职场文书
如何写好升职自荐信
2014/01/06 职场文书
大学校园活动策划书
2014/02/04 职场文书
语文教学感言
2014/02/06 职场文书
志愿者事迹材料
2014/12/26 职场文书
小学生优秀评语
2014/12/29 职场文书
走近毛泽东观后感
2015/06/04 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书
python 逐步回归算法
2021/04/06 Python
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
Selenium浏览器自动化如何上传文件
2022/04/06 Python