简单验证码识别,验证码识别,get_CAPTCHA.
简单验证码识别,验证码识别,get_CAPTCHA.
get_CAPTCHA.py
#encoding=utf-8N={} #字模,用的是网上的,此代码取模位置有些不同, #但大致一样。N[0]=[0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,]N[1]=[0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,]N[7]=[1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,]N[6]=[0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,]N[3]=[1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,]N[9]=[0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,]N[2]=[1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,]N[5]=[1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,]N[4]=[0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,]N[8]=[0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,]import Image,ImageEnhance,ImageFilterfirst = 11 #第一个字位置second = 23thirt = 35last = 47width = 19 #每个字宽度interval = 2top = 2low = 15 #通过中值过滤、对比度加强去噪img = Image.open('22.jpeg')img = img.filter(ImageFilter.MedianFilter()) #中值过滤函数img_bright = ImageEnhance.Contrast(img)img_bright = img_bright.enhance(3.0) #加强对比3.0倍img_bright.save('img_final.jpg') #剪切数字img = Image.open('img_final.jpg')img_number = []box_left =[11,23,35,47]box_right =[21,33,45,57]for i in range(4): box = (box_left[i],top,box_right[i],low) img_single = img.crop(box) file_name = 'number_' + str(i) + '.jpg' img_single.save(file_name)matrix = open('matrix.txt','a') #储存单个数字的矩阵for i in range(4): cube = [] file_name = 'number_' + str(i) + '.jpg' img = Image.open(file_name) for j in range(13): for k in range(10): if(img.getpixel((k,j)) <(50,50,50) ): #RGB值接近0,即黑色字体 cube.append(1) else: cube.append(0) s = 0 matrix.write('cube[' + str(i) + ']=[' ) for q in cube: if(s%10==0): matrix.write('\n') matrix.write(str(q) + ',') s=s+1 matrix.write("]\n\n\n")matrix.close()matrix = open('matrix.txt') #读取验证码的标记数组final = {}for i in range(4): final[i] = []for i in range(4): matrix.readline() for j in range(13): a = matrix.readline() a = list(a) for l in range(10): if(l==0): final[i].append(a[l]) else: final[i].append(a[l*2]) for z in range(2): matrix.readline()matrix.close()num = {}for i in range(4): num[i] = []for i in range(4): max_counter = 0 for k in range(10): counter = 0 for j in range(130): if(int(final[i][j])==N[k][j]): #注意将str的final转换成int counter +=1 if(counter > max_counter): max_counter = counter num[i]=kprint(num)
22.jpeg
imgs/asCode/02225742_AJpz.jpeg
相关内容
- 下载豆瓣音乐小站歌曲,豆瓣小站歌曲,[Python]代码#!
- python采集百度百科名片,,[Python]代码#!
- S先生与P先生谜题,谜题,[Python]代码de
- 对mysqldb的一个简单封装,mysqldb简单封装,对于python-my
- 多线程,限制线程数运行,,多线程限制线程数,[Python]代
- 使用PyQt4的QtWebKit对整个网页截图,pyqt4qtwebkit截图,pag
- 登录网站,,Copy来的,看起来有用
- 主要城市及时气温,主要城市气温,temperature.
- 提取网页正文,提取正文,[Python]代码#e
- python与计算物理:实现数值积分的Simpson方法,pythonsi
评论关闭