python基于opencv批量生成驗(yàn)證碼的示例
基本思路是使用opencv來(lái)把隨機(jī)生成的字符,和隨機(jī)生成的線段,放到一個(gè)隨機(jī)生成的圖像中去。
雖然沒(méi)有加復(fù)雜的形態(tài)學(xué)處理,但是目前看起來(lái)效果還不錯(cuò)
嘗試生成1000張圖片,但是最后只有998張,因?yàn)橛杏兄貜?fù)的,被覆蓋掉了。
代碼如下:
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 = "" #生成一個(gè)隨機(jī)矩陣,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()
結(jié)果:
以上就是python基于opencv批量生成驗(yàn)證碼的示例的詳細(xì)內(nèi)容,更多關(guān)于python 批量生成驗(yàn)證碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 使用python批量生成insert語(yǔ)句的方法
- python基礎(chǔ)學(xué)習(xí)之生成器與文件系統(tǒng)知識(shí)總結(jié)
- python生成器generator:深度學(xué)習(xí)讀取batch圖片的操作
- 教你怎么用Python生成九宮格照片
- Python如何生成隨機(jī)高斯模糊圖片詳解
- python使用ProjectQ生成量子算法指令集
- 教你使用Python根據(jù)模板批量生成docx文檔
- Python實(shí)現(xiàn)K-means聚類(lèi)算法并可視化生成動(dòng)圖步驟詳解
- 用python自動(dòng)生成日歷
- Python趣味挑戰(zhàn)之給幼兒園弟弟生成1000道算術(shù)題
相關(guān)文章
Python批量實(shí)現(xiàn)word中查找關(guān)鍵字的示例代碼
本文主要介紹了Python批量實(shí)現(xiàn)word中查找關(guān)鍵字的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Python實(shí)現(xiàn)常見(jiàn)數(shù)據(jù)格式轉(zhuǎn)換的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)常見(jiàn)數(shù)據(jù)格式轉(zhuǎn)換的方法,主要是xml_to_csv和csv_to_tfrecord,感興趣的小伙伴可以了解一下2022-09-09python 同時(shí)運(yùn)行多個(gè)程序的實(shí)例
今天小編就為大家分享一篇python 同時(shí)運(yùn)行多個(gè)程序的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01MoviePy常用剪輯類(lèi)及Python視頻剪輯自動(dòng)化
這篇文章主要介紹了MoviePy常用剪輯類(lèi)及Python視頻剪輯自動(dòng)化,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12利用Python進(jìn)行音頻信號(hào)處理和音樂(lè)生成的代碼示例
隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,音頻信號(hào)處理和音樂(lè)生成逐漸成為了Python程序員們的關(guān)注點(diǎn),本文將介紹如何利用Python進(jìn)行音頻信號(hào)處理和音樂(lè)生成,包括基本概念、常用庫(kù)的使用以及實(shí)際的代碼示例,需要的朋友可以參考下2024-06-06Python做個(gè)自定義動(dòng)態(tài)壁紙還可以放視頻
這篇文章主要介紹了如何用Python做個(gè)可以放視頻自定義動(dòng)態(tài)壁紙,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08