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 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
pygame学习笔记(6):完成一个简单的游戏
Apr 15 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
Django REST为文件属性输出完整URL的方法
Dec 18 Python
Python实现确认字符串是否包含指定字符串的实例
May 02 Python
python实现贪吃蛇游戏
Mar 21 Python
详解django中Template语言
Feb 22 Python
python实现人像动漫化的示例代码
May 17 Python
python Django 反向访问器的外键冲突解决
May 20 Python
新手学习Python2和Python3中print不同的用法
Jun 09 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
python区块链实现简版工作量证明
May 25 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
Admin generator, filters and I18n
2011/10/06 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
js自带函数备忘 数组
2006/12/29 Javascript
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
Quasar Input:type="number" 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
2017/06/15 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
Python之pymysql的使用小结
2019/07/01 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
python xlwt如何设置单元格的自定义背景颜色
2019/09/03 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
2013/02/07 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
机械专业毕业生推荐信范文
2013/11/25 职场文书
致400米运动员广播稿
2014/02/07 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
小学感恩节活动总结
2015/03/24 职场文书
工程质检员岗位职责
2015/04/08 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
联欢会开场白
2015/06/01 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
使用Java去实现超市会员管理系统
2022/03/18 Java/Android