python基于opencv批量生成验证码的示例
作者:奈何缘浅wyj 时间:2022-04-07 22:42:07
基本思路是使用opencv来把随机生成的字符,和随机生成的线段,放到一个随机生成的图像中去。
虽然没有加复杂的形态学处理,但是目前看起来效果还不错
尝试生成1000张图片,但是最后只有998张,因为有有重复的,被覆盖掉了。
代码如下:
import cv2
import numpy as np
line_num = 10
pic_num = 1000
path = "./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 = 60
img_width = 240
for 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 = 0
y_pos = 25
for i in range(4):
char = randchar()
img_name += char
cv2.putText(img,char,
(np.random.randint(x_pos,x_pos + 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)
cv2.imwrite(path + img_name + ".jpg",img)
#cv2.waitKey(0)
#cv2.destroyAllWindows()
结果:
来源:https://juejin.cn/post/6955740180783300615
标签:python,验证码,opencv
0
投稿
猜你喜欢
mysql 获取表有多少列
2010-10-14 13:44:00
详解Golang中interface{}的注意事项
2024-05-09 09:30:59
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2022-11-26 21:02:44
Python实战项目用PyQt5制作漫画脸GUI界面
2023-07-05 13:17:19
Python编写单元测试代码实例
2022-11-02 12:27:09
python中使用input()函数获取用户输入值方式
2021-06-23 04:03:11
利用Python的pandas数据处理包将宽表变成窄表
2021-07-28 20:00:11
通过Fckeditor把图片上传到独立图片服务器的方法
2023-11-06 20:02:24
ASP实现防止网站被采集代码
2011-03-25 10:40:00
scipy.interpolate插值方法实例讲解
2022-08-08 21:23:05
最新Python idle下载、安装与使用教程图文详解
2022-08-27 12:33:15
SQLServer 2005 列所有存储过程的语句
2024-01-18 12:02:34
Python超简单容易上手的画图工具库(适合新手)
2021-12-06 04:05:23
python实现简单的飞机大战
2023-07-08 09:16:10
php事务处理实例详解
2024-05-13 09:25:30
PHP动态生成javascript文件的2个例子
2024-05-11 09:25:44
不同分辨率下的自适用宽度
2008-11-24 12:58:00
python对html过滤处理的方法
2023-04-25 15:28:57
对变量赋值的理解--Pyton中让两个值互换的实现方法
2022-07-05 02:51:56
django中模板继承与ModelForm实例详解
2021-09-05 18:52:10