Python验证码识别处理实例
admin
2023-07-31 00:38:03
0

一、准备工作与代码实例

1、PIL、pytesser、tesseract

(1)安装PIL:下载地址:http://www.pythonware.com/products/pil/(CSDN下载)

下载后是一个exe,直接双击安装,它会自动安装到C:Python27Libsite-packages中去,

(2)pytesser:下载地址:http://code.google.com/p/pytesser/,(CSDN下载)

下载解压后直接放C:Python27Libsite-packages(根据你安装的Python路径而不同),同时,新建一个pytheeer.pth,内容就写pytesser,注意这里的内容一定要和pytesser这个文件夹同名,意思就是pytesser文件夹,pytesser.pth,及内容都要一样!

(3)Tesseract OCR engine下载:http://code.google.com/p/tesseract-ocr/(CSDN下载)

下载后解压,tessdata文件夹,用其替换掉pytesser解压后的tessdata文件夹即可。(就上面的pytesser文件夹)

二、验证

(1)原理:

验证码图像处理

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

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

(2)验证字符识别

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

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

 

要验证的图片如下:

(3)、简单的命令:

123 from pytesser import *image = Image.open(\’1.jpg\’)  # Open image object using PILprint image_to_string(image)     # Run tesseract.exe on image

然后运行:

 

或者直接:

1 print image_file_to_string(\’fnord.tif\’)

同样能输出结果!

(4)、复杂一点的

上面的只能对一些比较简单的做处理,一

原理:彩色转灰度,灰度转二值,二值图像识别

1234567891011121314151617181920212223242526272829303132333435363738394041424344 # 验证码识别,此程序只能识别数据验证码  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\’)  #注意这里的图片要和此文件在同一个目录,要不就传绝对路径也行

运行后效果:

validatepython


相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python查找阿姆斯特朗数 题目解释 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...