验证码识别是用这个captcha库里面的一些随机组合生成的验证码集合,然后训练模型,进行测试识别
import tensorflow as tf
from captcha.image import ImageCaptcha
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import random
number = ['0','1','2','3','4','5','6','7','8','9']
alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
ALPHABET = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
def random_captcha_text(char_set=number+alphabet+ALPHABET, captcha_size=4): #这个有几个数字,这个根据你电脑性能自行设置
captcha_text = []
for i in range(captcha_size):
c = random.choice(char_set)
captcha_text.append(c) #上面这几行代码把随机生成的字母保存在列表里面
return captcha_text
def gen_captcha_text_and_image():
image = ImageCaptcha()
captcha_text = random_captcha_text() #把列表转换成字符串表达
captcha_text = ''.join(captcha_text)
captcha = image.generate(captcha_text)
#image.write(captcha_text, captcha_text + '.jpg')
captcha_image = Image.open(captcha)
captcha_image = np.array(captcha_image)
return captcha_text, captcha_image #返回我们的数据集和label
if __name__ == '__main__':
text, image = gen_captcha_text_and_image()
f = plt.figure()
ax = f.add_subplot(111)
ax.text(0.1, 0.9,text, ha='center', va='center', transform=ax.transAxes)
plt.imshow(image)
plt.show()
生成随机验证码图片如下
下面是训练代和测试代码: