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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
django 捕获异常和日志系统过程详解
Jul 18 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
关于Python 常用获取元素 Driver 总结
Nov 24 Python
python kafka 多线程消费者&手动提交实例
Dec 21 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
python百行代码自制电脑端网速悬浮窗的实现
May 12 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
Python用dilb提取照片上人脸的示例
Oct 26 Python
只用40行Python代码就能写出pdf转word小工具
May 31 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知道与问问的采集插件代码
2010/10/12 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
python版百度语音识别功能
2019/07/09 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
SQL SERVER面试资料
2013/03/30 面试题
房产委托公证书
2014/04/08 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
离婚案件被告代理词
2015/05/23 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android
Vue的生命周期一起来看看
2022/02/24 Vue.js
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python