基于python的使用验证码识别技术(py3 可用)
2012-02-11 02:40
489 查看
以下技术配合python特有的web 相关处理能力可以再很多方面实施自动化功能了。
以上程序对下面图片(某网站的验证码)进行处理,
其中起始、步长等 相关取值可以通过ps获取:
注意,ps里面的值需要都加1和减1。
最后的2个结果结果为:
你应该可以看出来就是图片上面的最后2个字符:8和I了吧。
最后可以多采样一些图面并作为特征库,根据内容相同的百分比率进行匹配。
成功率我在本地非完全采样的情况下,基本上是100%成功识别率
针对高级的图像识别技术,可能需要基于RGB、旋转、字体、模板、滤镜、特征码等多种以及结合方式,具体分析具体对待。
以上文章仅提供一种思路。
from PIL import Image image_name=r'c:\no2.jpg' #现实中可以直接用urllib.request.urlopen()或者urllib.request.urlretrieve()函数等方式获得。 #以下内容需要实际图片分析得出 sx=20 #起始x sy=16 #起始y ex=8 #宽 ey=10 #高 st=20 #步长 def gc(a):#过滤函数,根据实际情况定义过滤 if a>180: return 0; else: return 1; def disp(im): #Image对象解码函数 sizex,sizey=im.size tz=[] for y in range(sizey): t=[] for x in range(sizex): t.append(gc(im.getpixel((x,y)))) tz.append(t) for i in tz: print('') for l in i: print(l,sep='',end='') return tz im = Image.open(image_name) #打开图像,im为该图片对象,支持直接打开文件(例如open)对象。 im = im.convert('L')#转换为灰阶,方便更细的过滤,参考过量函数 #分割图片 im_new = [] for i in range(5): #验证码切割 im1 = im.crop((sx+(i*st),sy,sx+ex+(i*st),sy+ey)) #根据起始值步长等提取目标区域 im_new.append(im1) #对分割的图片进行处理 for i in im_new: disp(i) print('') input('')
以上程序对下面图片(某网站的验证码)进行处理,
其中起始、步长等 相关取值可以通过ps获取:
注意,ps里面的值需要都加1和减1。
最后的2个结果结果为:
你应该可以看出来就是图片上面的最后2个字符:8和I了吧。
最后可以多采样一些图面并作为特征库,根据内容相同的百分比率进行匹配。
成功率我在本地非完全采样的情况下,基本上是100%成功识别率
针对高级的图像识别技术,可能需要基于RGB、旋转、字体、模板、滤镜、特征码等多种以及结合方式,具体分析具体对待。
以上文章仅提供一种思路。
相关文章推荐
- 使用Python+Tensorflow的CNN技术快速识别验证码
- 使用Python+Tensorflow的CNN技术快速识别验证码
- 使用python验证代理ip是否可用的实现方法
- python使用Tesseract库识别验证
- 基于python的-使用正则表达式验证手机号
- 基于Python使用SVM识别简单的字符验证码的完整代码开源分享
- 使用python验证代理IP是否可用
- Python使用完美验证码识别系统笔记
- python3使用builtwith识别网站使用相关技术
- Python使用OCR技术识别图片中的文字(入门篇)
- Python 使用Tesseract库识别验证(二十四)
- 基于Python使用CloudSight API实现简单的图像识别(image Recognition)
- 【深度学习】基于caffe的表情识别(五):使用python接口测试
- python3使用builtwith识别网站使用相关技术
- Swing之Gridbaglayout使用以及通过反射技术验证属性表框实例
- 分享一项基于Android、iOS平台的移动端身份证识别技术
- python简单验证码识别
- 人工验证码识别技术
- Python基于hashlib模块的文件MD5一致性加密验证示例
- 使用Docker搭建Struts2-048漏洞环境及Python PoC验证