Python使用captcha制作验证码的实现示例
作者:Keras深度学习 发布时间:2023-04-16 00:49:35
标签:Python,captcha,验证码
在使用Keras搭建验证码识别模型时,需要大量的验证码图片。在这里,使用captcha模块生成验证码图片,验证码图片名称为验证码上显示的字符串。
1 生成单张验证码图片并显示
生成一张验证码的代码如下:
from captcha.image import ImageCaptcha
import matplotlib.pyplot as plt
import numpy as np
import random
import string
#characters为验证码上的字符集,10个数字加26个大写英文字母
#0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ str类型
characters=string.digits+string.ascii_uppercase
width,height,n_len,n_class=170,80,4,len(characters)
#设置验证码图片的宽度widht和高度height
#除此之外还可以设置字体fonts和字体大小font_sizes
generator=ImageCaptcha(width=width,height=height)
#生成随机的4个字符的字符串
random_str=''.join([random.choice(characters) for j in range(4)])
#生成验证码
img=generator.generate_image(random_str)
#显示验证码图片和验证码标题
plt.imshow(img)
plt.title(random_str)
plt.show()
程序运行结果为:
2 验证码图片的显示与保存
上面代码中生成的验证码是PIL图像格式,因此也可以直接使用PIL自带的show方法显示图片,save方法保存图片
如下:
#显示验证码
img.show()
#保存验证码
file_name=random_str+'.jpg'
img.save(file_name)
3 批量生成验证码样本集
当我们在深度学习中,进行验证码进行字符识别,需要大量的图片,因此我们可以批量生成大量的样本。这里以生成一万张样本为例。
代码如下:
from captcha.image import ImageCaptcha
import matplotlib.pyplot as plt
import numpy as np
import random
import string
from PIL import Image
#characters为验证码上的字符集,10个数字加26个大写英文字母
#0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ str类型
characters=string.digits+string.ascii_uppercase
width,height,n_len,n_class=170,80,4,len(characters)
#生成一万张验证码
for i in range(10000):
generator=ImageCaptcha(width=width,height=height)
random_str=''.join([random.choice(characters) for j in range(4)])
img=generator.generate_image(random_str)
#将图片保存在目录yzm文件夹下
file_name='./yzm/'+random_str+'_'+str(i)+'.jpg'
img.save(file_name)
当程序执行完,会在文件夹yzm下生成一万张验证码图片
来源:https://keras-lx.blog.csdn.net/article/details/89919821


猜你喜欢
- 首先创建一个表Use Test;Create Table TableTest(`ID` mediumint(8) default '
- 发送电子邮件在即时通信软件如此发达的今天,电子邮件仍然是互联网上使用最为广泛的应用之一,公司向应聘者发出录用通知、网站向用户发送一个激活账号
- 如下图所示的文件,我们按文件名后缀对文件进行分类使用os和shutil首先导入对应的模块,将目标文件夹和到分类到的文件夹定义import o
- 本文实例讲述了python获取本地计算机名字的方法。分享给大家供大家参考。具体如下:import sys, sockethostname =
- git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。例如,假设我们有个稳定版本的分支,叫v2.0,另
- 图像处理工具——灰度直方图灰度直方图时图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者占有率。例子:矩阵图片来自网络,侵删!上
- SQL JOIN 连接SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。最常见的 JOIN 类型:SQL
- Javascript 中将多个语句写成一个语句的两种方法小结一、使用逗号运算符将多个语句写成一个语句 1.一次声明多个变量&nb
- 前言:Python主要有三种数据类型:字典、列表、元组。其分别由花括号,中括号,小括号表示。如:字典:dic={'a':12
- 持续更新一些常用的Tensor操作,比如List,Numpy,Tensor之间的转换,Tensor的拼接,维度的变换等操作。其它Tensor
- 这里列出了13种实现图片或网页内容 lightbox 效果的方法,大部分是链接到各种lightbox作者的英文页面,里面都有源代码下载。Th
- 使Web系统的开发与维护更加方便,从而有效的节省人力物力,受到了越来越多企业的青眯。 模板引擎是MVC模式建立过程的重要方法,开发者可以设计
- T-SQL 标识符在T-SQL语言中,对SQLServer数据库及其数据对象(比如表、索引、视图、存储过程、触发器等)需要以名称来进行命名并
- 代码如下:function checkip(checkstring)'用正则判断IP是否合法 dim re1 set re1=new
- 多层感知器(Multilayer Perceptron)定义了用于二分类的多层感知器模型。模型输入32维特征,经过三个全连接层,每层使用re
- 目录前言初始化项目设计代码实现按需加载播放音频录音长按事件运行调试总结前言相信很多养猫的人都很想跟自己的猫进行沟通,当猫咪发出各种不同声音的
- 目的:了解常用的ORM框架;使用SQLObject框架操作MySQL数据库。面试题:在Python语言中有哪些常用的ORM框架,它们有什么区
- python使用socket创建tcp服务器和客户端。服务器端为一个时间戳服务器,在接收到客户端发来的数据后,自动回复。客户端,等待用户输入
- PHP使用星号替代用户名手机和邮箱这个在许多的活动界面会看到如淘宝的购物界面中的一些客户的支付宝号都是隐藏掉的哦,下面我们来看一下它的使用方
- 什么是Firebug从事了数年的Web开发工作,越来越觉得现在对WEB开发有了更高的要求。要写出漂亮的HTML代码;要编写精致的CSS样式表