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 cv2import numpy as npline_num = 10pic_num = 1000path = './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 = 60img_width = 240for 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 += charcv2.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)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. python利用os模塊編寫(xiě)文件復(fù)制功能——copy()函數(shù)用法2. php測(cè)試程序運(yùn)行速度和頁(yè)面執(zhí)行速度的代碼3. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究4. 三個(gè)不常見(jiàn)的 HTML5 實(shí)用新特性簡(jiǎn)介5. 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁(yè)6. ajax請(qǐng)求添加自定義header參數(shù)代碼7. Python使用jupyter notebook查看ipynb文件過(guò)程解析8. 解決Python 進(jìn)程池Pool中一些坑9. 解決python腳本中error: unrecognized arguments: True錯(cuò)誤10. IntelliJ IDEA創(chuàng)建普通的Java 項(xiàng)目及創(chuàng)建 Java 文件并運(yùn)行的教程
