python 은 opencv 를 기반 으로 인증 코드 를 대량으로 생 성 하 는 예제 입 니 다.

기본 적 인 사 고 는 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 이 인증 코드 를 대량으로 생 성 하 는 데 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기