- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python3⽣成⼿写体数字数据集
0.引⾔
平时经常会接触到验证码,或者在机器 习 习过程中,⼤家或许会接触过⼿写体识别/验证码识别之类问题,会⽤到⼿写体的数据
集 ;
⾃⼰尝试写了⼀个⽣成⼿写体图⽚的 Python 程序,可以批量⽣成⼿写体数字数据集,在此分享下⽣成 30*30像素 的⼿写体数字
1-9 图⽚ 的⼀种实现⽅法 ;
⼤概流程 :新建空⽩图像 ⽣成随机数 1-9 将数字写到空⽩图像上 旋转、扭曲 处理 得到 “⼿写体数字” ;
得到的⼿写体数字图像如 图1 所⽰,实现⽐较简单,有兴趣可以⾃⼰试 ;
图1 ⽣成的⼿写体数字 1-9
图 2 利⽤ generate_imgs.py 得到数字 3 图像
1. 设计流程
图 4 整体设计流程
图 5 ⽣成的图像经过的处理
1.1 新建⼀个空⽩图像 img_50,尺⼨⼤⼩为 50*50
1 img_50_ blank = Image.new(RGB, (50, 50), ( 55, 55, 55))
想要的 30*30 的图像,为什么我这⾥要先⽣成 50*50 的空⽩图像?
因为图像背景 (50*50像素的画布)初始化的时候设置为 ⽩⾊ (颜⾊数组 (255, 255, 255)),⽽背景⾊之外的其实是⿊⾊ ;
之后需要进⾏旋转处理,如果直接新建 30*30 像素的画布,旋转之后边上会出现⿊边,如 图6 所⽰ ;
所以我新建了⼀个 50*50,然后旋转之后从中间裁出来⼀个 30*30 的图像出来 ;
图 6 直接⽤ 30*30 像素的画布写字旋转 (会出现⿊边)
1.2 利⽤ PIL 在图像上写⽂字 text
利⽤ PIL 的 ImageDraw,创建画笔,然后利⽤ draw.text 在指定位置写字;
xy=(18,11) 是从图像左上⾓开始的坐标,取值 ⾃⼰根据需求调整 ;
1 # 创建画笔
draw = ImageDraw.Draw(img_50_ blank)
3
4 # ⽣成随机数1-9
5 num = str(random.randint(1, 9))
6
7 # 设置字体,这⾥选取字体⼤⼩ 5
8 font = ImageFont.truetype(simsun.ttc, 0)
9
10 # xy是左上⾓开始的位置坐标
11 draw.text(xy=(18, 11), font=font, text=num, fill=(0, 0, 0))
1.3 将图像随机旋转⼀定⾓度
利⽤ rotate(angel) 进⾏旋转图像,angel 取的是度数,这⾥让它随机旋转 - 10 到 + 10 度 :
1 # 随机旋转-10-10⾓度
random_angle = random.randint(-10, 10)
3 img_50_ rotated = img_50_ blank.rotate(random_angle)
1.4 图像扭曲
这⾥是⽣成 “⼿写体”数字的 核⼼ 步骤,⼀个正常的图像经过扭曲之后就可以得到想要的验证码了:
1 # 图形扭曲参数
params = [1 - float(random.randint(1, )) / 100,
3 0,
4 0,
5 0,
6 1 - float(random.r
您可能关注的文档
- 党员批评与自我批评三篇.docx
- 考古学--夏商周文档.docx
- 手术室十大安全目标.docx
- (完整)7B(上海版牛津教材)-M1U1Writing-a-travel-guide.doc
- 教师师德考核个人总结精选15篇.doc
- 扬尘治理专项方案。.doc
- 建筑施工现场生活住宿区安全检查表.doc
- 伊斯兰文化的印度化与近代早期印度民族建构.pdf
- (完整版)新部编二年级语文下册词语表.doc
- 湖北省2021年普通高中学业水平合格性考试物理试卷(PDF版).pdf
- 被子植物线粒体DNA数量调控:解锁非孟德尔遗传密码.docx
- 生态旅游区规划与管理中的生态旅游可持续发展风险评估报告.docx
- 生态旅游区规划与管理中的生态旅游人才培养与引进报告.docx
- 2025年山东烟台市中小学教师招聘考试真题及答案.docx
- 生态旅游区可持续发展规划与管理中的生态旅游与旅游市场分析报告.docx
- 裂叶铁线莲与三叶蔓荆化学成分的解析与研究.docx
- 生态旅游与乡村振兴融合发展2025年规划与管理策略报告.docx
- 表达干扰素-tv的人脐带间充质干细胞对大鼠诱发性肝癌的治疗作用探究.docx
- 建德建筑拆除方案设计.docx
- 2025年山东省枣庄市中小学教师招聘考试试题题库及答案.docx
文档评论(0)