Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python使用captcha制作验证码[通俗易懂]

Python使用captcha制作验证码[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-11-08 03:14:51
发布于 2022-11-08 03:14:51
2K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

在使用Keras搭建验证码识别模型时,需要大量的验证码图片。在这里,使用captcha模块生成验证码图片,验证码图片名称为验证码上显示的字符串。

1 生成单张验证码图片并显示

生成一张验证码的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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方法保存图片 如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#显示验证码
img.show()

#保存验证码
file_name=random_str+'.jpg'
img.save(file_name)

3 批量生成验证码样本集

当我们在深度学习中,进行验证码进行字符识别,需要大量的图片,因此我们可以批量生成大量的样本。这里以生成一万张样本为例。 代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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://javaforall.cn/191260.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月20日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
常用机器学习代码汇总
皮大大
2023/08/25
4460
kaggle实战-银行用户流失预测
近年来,不论是传统行业还是互联网行业,都面临着用户流失问题。一般在银行、电话服务公司、互联网公司、保险等公司,经常使用客户流失分析和客户流失率作为他们的关键性业务指标之一。
皮大大
2023/08/25
2.1K0
极不均衡样本的信用卡欺诈分析
原notebook地址为:https://www.kaggle.com/code/janiobachmann/credit-fraud-dealing-with-imbalanced-datasets/notebook
皮大大
2023/08/25
5110
基于Titanic数据集的完整数据分析
本文是一个极度适合入门数据分析的案例,采用的是经典数据集:泰坦尼克数据集(train部分),主要内容包含:
皮大大
2023/05/05
1.4K0
(PyStan)零售价格贝叶斯策略建模(上)
定价是任何电子商务企业都面临的一个普遍问题,可以通过贝叶斯统计方法得到有效的解决。
AiTechYun
2019/09/25
1.6K0
(PyStan)零售价格贝叶斯策略建模(上)
Python数据挖掘|银行信用卡客户流失预测(kaggle)
越来越多的客户不再使用信用卡服务,银行的经理对此感到不安。如果有人能为他们预测哪些客户即将流失,他们将不胜感激,因为这样他们可以主动向客户提供更好的服务,并挽回这些即将流失的客户。
刘早起
2021/01/07
5.3K0
Python数据挖掘|银行信用卡客户流失预测(kaggle)
金融数据分析库yfinance,初次使用体验!
今天给大家介绍一个金融数据分析库yfinance,主要是基于该库下的股票数据分析及股价预测(使用LSTM模型)
皮大大
2023/08/29
15K2
专栏 | 基于 Jupyter 的特征工程手册:数据预处理(一)
特征工程在机器学习中的重要性不言而喻,恰当的特征工程能显著提升机器学习模型性能。我们在 Github 上整理编写了一份系统的特征工程教程,供大家参考学习。
红色石头
2022/01/14
1K0
专栏 | 基于 Jupyter 的特征工程手册:数据预处理(一)
kaggle实战-精美可视化与时序预测
本文是基于一份商品销售数据,使用Pandas、seaborn、statmodels、sklearn、线性回归预测、xgboost等库和方法进行多角度的可视化分析和时序预测。
皮大大
2023/08/25
1.2K0
kaggle实战-精美可视化与时序预测
基于长短期记忆模型的股价预测及可视化
1、https://easyai.tech/ai-definition/lstm/
皮大大
2024/09/09
2190
关系(一)利用python绘制散点图
散点图可以了解数据之间的各种相关性,如正比、反比、无相关、线性、指数级、 U形等,而且也可以通过数据点的密度(辅助拟合趋势线)来确定相关性的强度。另外,也可以探索出异常值(在远超出一般聚集区域的数据点称)。
HsuHeinrich
2024/03/26
3970
关系(一)利用python绘制散点图
训练和测试数据的观察
在开始竞赛之前,我们要检查测试数据集的分布与训练数据集的分布,如果可能的话,看看它们之间有多么不同。这对模型的进一步处理有很大帮助.
用户1332428
2018/07/30
1.3K0
训练和测试数据的观察
【数据挖掘项目】Airbnb新用户的民宿预定结果预测
摘要 本文主要根据对Airbnb 新用户的民宿预定结果进行预测,完整的陈述了从 数据探索到 特征工程到 构建模型的整个过程。 其中: 1数据探索部分主要基于 pandas库,利用常见的: head(), value_counts(), describe(), isnull(), unique()等函数以及通过 matplotlib作图对数据进行理解和探索; 2.特征工程部分主要是通过从日期中提取 年月日, 季节, weekday,对年龄进行 分段,计算相关特征之间的 差值,根据用户id进行分组,从而统计一些特征变量的 次数, 平均值, 标准差等等,以及通过 one hot encoding和 labels encoding对数据进行编码来提取特征; 3.构建模型部分主要基于 sklearn包, xgboost包,通过调用不同的模型进行预测,其中涉及到的模型有,逻辑回归模型 LogisticRegression,树模型: DecisionTree,RandomForest,AdaBoost,Bagging,ExtraTree,GraBoost,SVM模型: SVM-rbf,SVM-poly,SVM-linear, xgboost,以及通过改变 模型的参数和 数据量大小,来观察 NDGG的评分结果,从而了解不同模型,不同参数和不同数据量大小对预测结果的影响.
Datawhale
2019/07/08
2.3K0
【数据挖掘项目】Airbnb新用户的民宿预定结果预测
[数据科学] 基于基因表达监测预测肿瘤
通过基因表达监测(DNA微阵列)对新的癌症病例进行分类,从而为鉴定新的癌症类别和将肿瘤分配到已知类别提供了一般方法。这些数据用于对患有急性髓性白血病(AML)和急性淋巴细胞白血病(ALL)的患者进行分类。
DrugAI
2021/01/29
3890
乳腺癌预测_EDA_Models
在医学领域的不断创新中,技术的进步为疾病的早期预测和诊断提供了全新的可能性。乳腺癌作为女性最常见的癌症之一,对于其早期预测变得尤为关键。本文将引领您探索乳腺癌预测中的数据探索分析(Exploratory Data Analysis,简称EDA)以及相关的模型应用。通过深入挖掘乳腺癌数据集,我们将揭示隐藏在背后的模式和趋势,为医学领域的科学家、数据科学家和临床医生提供更有力的工具,以更准确地预测乳腺癌的风险。
老虎也淘气
2024/01/30
2720
乳腺癌预测_EDA_Models
【内含baseline】Kaggle机器学习新赛指南!
日前,Kaggle发布了ICR - Identifying Age-Related Conditions疾病识别大赛。这是一个机器学习中的二分类任务,需要你使用ML的方法对病人进行诊断,判断病人是否有相关疾病,从而为医生提供进行合理诊断的依据。
zenRRan
2023/08/22
2620
【内含baseline】Kaggle机器学习新赛指南!
8种数值变量的特征工程方法
本文主要介绍处理数值变量特征工程,将介绍使用Python的Scikit-Learn库、Numpy等工具处理数值的高级特征工程技术,旨在提升机器学习模型的效能。
皮大大
2025/05/09
960
干货 | 20个教程,掌握时间序列的特征分析(附代码)
【导语】时间序列是指以固定时间为间隔的序列值。本篇教程将教大家用 Python 对时间序列进行特征分析。
AI科技大本营
2019/07/11
6.1K0
干货 | 20个教程,掌握时间序列的特征分析(附代码)
Python机器学习(1)-- 自己设计一个感知机(Perceptron)分类算法
红色石头
2017/12/28
2.1K0
Python机器学习(1)-- 自己设计一个感知机(Perceptron)分类算法
Python异常值的自动检测实战案例
异常值检测(outlier)是一种数据挖掘过程,用于确定数据集中发现的异常值并确定其出现的详细信息。当前自动异常检测至关重要,因为大量数据无法手动标记异常值。自动异常检测具有广泛的应用,例如信用卡欺诈检测,系统健康监测,故障检测以及传感器网络中的事件检测系统等。今天我们就通过使用python来实现异常值的自动检测系统的实战开发。我们将会使用以下技术来实现异常值检测:
小白学视觉
2024/09/11
2320
Python异常值的自动检测实战案例
推荐阅读
相关推荐
常用机器学习代码汇总
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验