python 实现自动生成验证码图片

思路
基本思路是使用opencv来把随机生成的字符,和随机生成的线段,放到一个随机生成的图像中去。
感谢各友的鼓励与支持🌹🌹🌹,往期文章都在最后梳理出来了(●'◡'●)
👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇
代码一
import cv2import numpy as npline_num = 10pic_num = 1000path = "./imgs/"def randcolor():return (np.random.randint(0,255),np.random.randint(0,255),np.random.randint(0,255))def randchar():return chr(np.random.randint(65,90))def randpos(x_start,x_end,y_start,y_end):return (np.random.randint(x_start,x_end),np.random.randint(y_start,y_end))img_heigth = 60img_width = 240for i in range(pic_num):img_name = ""#生成一个随机矩阵,randint(low[, high, size, dtype])img = np.random.randint(100,200,(img_heigth,img_width, 3), np.uint8)#显示图像#cv2.imshow("ranImg",img)x_pos = 0y_pos = 25for i in range(4):char = randchar()img_name += charcv2.putText(img,char,+ 50),np.random.randint(y_pos,y_pos + 35)),cv2.FONT_HERSHEY_SIMPLEX,1.5,randcolor(),2,cv2.LINE_AA)x_pos += 45#cv2.imshow("res",img)#添加线段for i in range(line_num):img = cv2.line(img,randpos(0,img_width,0,img_heigth),randpos(0,img_width,0,img_heigth),randcolor(),np.random.randint(1,2))#cv2.imshow("line",img)+ img_name + ".jpg",img)#cv2.waitKey(0)#cv2.destroyAllWindows()
结果

代码二
import osimport random# captcha是用于生成验证码图片的库,可以 pip install captcha 来安装它from captcha.image import ImageCaptchadef random_captcha_text(num):# 验证码列表captcha_text = []for i in range(10): # 0-9数字captcha_text.append(str(i))for i in range(65, 91): # 对应从“A”到“Z”的ASCII码captcha_text.append(chr(i))for i in range(97, 123): #对应从“a”到“z”的ASCII码captcha_text.append(chr(i))# 从list中随机获取6个元素,作为一个片断返回example = random.sample(captcha_text, num)# 将列表里的片段变为字符串并返回verification_code = ''.join(example)return verification_code# 生成字符对应的验证码def generate_captcha_image():image = ImageCaptcha()#获得随机生成的验证码captcha_text = random_captcha_text(8)#把验证码列表转为字符串captcha_text = ''.join(captcha_text)#生成验证码path='E:/pycharm/验证码识别/code/test/'if not os.path.exists(path):print("目录不存在!,已自动创建" )os.makedirs(path)print("生成的验证码的图片为:", captcha_text)image.write(captcha_text, path + captcha_text + '.png')if __name__ == '__main__':number=1000for i in range(number):generate_captcha_image()
结果

「❤️ 感谢大家」
如果你觉得这篇内容对你挺有有帮助的话:
- 点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
- 欢迎在留言区与我分享你的想法,也欢迎你在留言区记录你的思考过程。
- 觉得不错的话,也可以阅读近期梳理的文章(感谢鼓励与支持🌹🌹🌹):
- 编程中的惰性思想
- 小程序云开发资源的管理
- 教你用python进行数字化妆,可爱至极
- 加速Python列表和字典,让你代码更加高效
- Origin 2019b 图文安装教程及下载(附安装包)
- python绘制彩虹图
- python实现图片中文字分割效果
- 教你用Python制作实现自定义字符大小的简易小说阅读器
- 「查缺补漏」巩固你对算法复杂度的理解
- 汇总了32个为开发者提供的免费工具
- 教你通过python利用近邻法实现图片缩小后变成另一张图(类似幻影坦克)
- 30 行代码实现蚂蚁森林自动收能量
老铁,三连支持一下,好吗?↓↓↓

欢迎大家加入到知识星球这个大家庭,这里一定有与你志同道合的小伙伴,在这里大家可以一起交流,一起学习,一同吹逼,一同玩耍。。。
长按按钮 “识别二维码” 关注我更多精彩内容等着你哦


点分享

点点赞

点在看
评论
