python基于opencv批量生成验证码的示例


Posted in Python onApril 28, 2021

基本思路是使用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()

  结果:

python基于opencv批量生成验证码的示例

以上就是python基于opencv批量生成验证码的示例的详细内容,更多关于python 批量生成验证码的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python装饰器使用方法实例
Nov 21 Python
详解Python之unittest单元测试代码
Jan 24 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
python 重命名轴索引的方法
Nov 10 Python
Django认证系统实现的web页面实现代码
Aug 12 Python
opencv 实现特定颜色线条提取与定位操作
Jun 02 Python
基于Python绘制美观动态圆环图、饼图
Jun 03 Python
总结Python常用的魔法方法
May 25 Python
只用50行Python代码爬取网络美女高清图片
Jun 02 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 Python
python实现会员管理系统
Mar 18 Python
Python加密与解密模块hashlib与hmac
Jun 05 Python
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 #Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
python实现腾讯滑块验证码识别
Apr 27 #Python
python实现调用摄像头并拍照发邮箱
Apr 27 #Python
You might like
PHP中的正规表达式(一)
2006/10/09 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
区分JS中的undefined,null,"",0和false
2007/03/08 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
python中map()函数的使用方法示例
2017/09/29 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
python将视频转换为全字符视频
2019/04/26 Python
python图像和办公文档处理总结
2019/05/28 Python
python代码中怎么换行
2020/06/17 Python
python 实现图片批量压缩的示例
2020/12/18 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
提拔干部考察材料
2014/05/26 职场文书
全运会口号
2014/06/20 职场文书
公司领导班子对照材料
2014/08/18 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书