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循环监控远程端口的方法
Mar 14 Python
Python字符串和文件操作常用函数分析
Apr 08 Python
详解Python中的变量及其命名和打印
Mar 11 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
Python编程实现的图片识别功能示例
Aug 03 Python
python 获取键盘输入,同时有超时的功能示例
Nov 13 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
python 缺失值处理的方法(Imputation)
Jul 02 Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 Python
vue常用指令代码实例总结
Mar 16 Python
5行Python代码实现图像分割的步骤详解
May 25 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 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生成网站桌面快捷方式代码分享
2014/10/11 PHP
php常用的url处理函数总结
2014/11/19 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
JavaScript类和继承 constructor属性
2010/03/04 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
客户端js性能优化小技巧整理
2013/11/05 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
幼儿园教师节活动方案
2014/02/02 职场文书
品牌服务方案
2014/06/03 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
租赁协议书
2015/01/27 职场文书
大学生入党自传2015
2015/06/26 职场文书
初中军训感言
2015/08/01 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS