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过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
python模块简介之有序字典(OrderedDict)
Dec 01 Python
使用Python实现windows下的抓包与解析
Jan 15 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 Python
python爬虫模拟浏览器的两种方法实例分析
Dec 09 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
python判断链表是否有环的实例代码
Jan 31 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
解决tensorflow 释放图,删除变量问题
Jun 23 Python
matplotlib之pyplot模块之标题(title()和suptitle())
Feb 22 Python
Python基础之Socket通信原理
Apr 22 Python
Python使用PyYAML库读写yaml文件的方法
Apr 06 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+Html+缓存
2006/12/20 PHP
php二分法在IP地址查询中的应用
2008/08/12 PHP
php 图片上传类代码
2009/07/17 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
php使用curl抓取qq空间的访客信息示例
2014/02/28 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
python基于xml parse实现解析cdatasection数据
2014/09/30 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
python3.7调试的实例方法
2020/07/21 Python
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
大学毕业生简单自荐信
2013/11/05 职场文书
会计与审计毕业生自荐信范文
2013/12/30 职场文书
清扬洗发水广告词
2014/03/14 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
初中语文教学研修日志
2015/11/13 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
SpringBoot生成License的实现示例
2021/06/16 Java/Android
Python爬虫入门案例之回车桌面壁纸网美女图片采集
2021/10/16 Python