ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Machine Learning 실습 (22)
    Machine Learning 2022. 7. 19. 17:40

    도형 그리기

    • cv2.line(배경이미지, 시작점좌표, 끝점좌표, 색상, 선두께) : 직선 그리기 함수
    • cv2.circle(배경이미지, 중심좌표, 반지름, 색상, 선두께) : 원 그리기 함수
    • cv2.rectangle(배경이미지, 좌상단점좌표, 우하단점좌표, 색상, 선두께) : 사각형 그리기 함수
    • cv2.ellipse(배경이미지, 중심좌표, 장축/단축길이, 호의시작각, 호의 종료각, 색상, 선두께) : 타원 그리기 함수
    • cv2.putText(배경이미지, 출력내용, 출력시작좌표, 폰트, 크기, 색상, 굵기) : 텍스트 입력 함수

    CV_FONT_HERSHEY_SIMPLEX normal size sans-serif font
    CV_FONT_HERSHEY_PLAIN small size sans-serif font
    CV_FONT_HERSHEY_DUPLEX normal size sans-serif font (more complex than CV_FONT_HERSHEY_SIMPLEX )
    CV_FONT_HERSHEY_COMPLEX normal size serif font
    CV_FONT_HERSHEY_TRIPLEX normal size serif font (more complex than CV_FONT_HERSHEY_COMPLEX )
    CV_FONT_HERSHEY_COMPLEX_SMALL smaller version of CV_FONT_HERSHEY_COMPLEX
    CV_FONT_HERSHEY_SCRIPT_SIMPLEX hand-writing style font
    CV_FONT_HERSHEY_SCRIPT_COMPLEX more complex variant of CV_FONT_HERSHEY_SCRIPT_SIMPLEX

     

    import cv2
    # 색감 설정값 cv2.IMREAD_COLOR
    img = cv2.imread('data/lenna.png')
    
    # 색상공간 변형 bgr -> rgb
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    
    # 행 200:400, 열 200:370
    # 사각형 그리는 함수
    img = cv2.rectangle(img, (200,200),(370,400),(0,255,0),5)
    # 문자 입력
    font = cv2.FONT_HERSHEY_SIMPLEX # 폰트 이름
    # 이미지, 출력문구, 위치, 폰트, 크기, 색, 두께
    img = cv2.putText(img, "Face ROI", (200,200-10), font, 1, (255,0,0),3)
    
    plt.imshow(img)
    plt.show()

    cvlib 얼굴 영역 인식하기

    !pip install cvlib

     

    import cv2
    import matplotlib.pyplot as plt
    import cvlib as cv # 얼굴 인식 모듈 사용하기
    
    # 색감 설정값 cv2.IMREAD_COLOR
    img = cv2.imread('data/lenna.png')
    
    # 색상공간 변형 bgr -> rgb
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    
    # 얼굴 인식
    faces, confidences = cv.detect_face(img)
    print(faces)
    #[[좌측상단x,좌측y, 우측x,우측y]]
    print(confidences)
    
    # 직사각형으로 얼굴영역 표시하기
    img = cv2.rectangle(img, (faces[0][0],faces[0][1]), (faces[0][2],faces[0][3]), (0,255,0), 3)
    
    # 얼굴 문자 입력
    img = cv2.putText(img, "face", (faces[0][0],faces[0][1]-10), font, 1, (0,255,0),3)
    
    plt.imshow(img)
    plt.show()

     

    import cv2
    import matplotlib.pyplot as plt
    import numpy as np
    
    img = cv2.imread('data/person_face.jpg')
    
    print(img.shape)
    
    # 얼굴 찾기
    faces, confidences = cv.detect_face(img)
    print(faces)
    for (x, y, x2, y2)in faces:
    
        # 얼굴 roi 지정
        face_img = img[y:y2, x:x2] # 행,열
    
        # 성별 예측하기
        label, confidence = cv.detect_gender(face_img)
        
        # 각각의 얼굴 영역 박스 표시 
        img = cv2.rectangle(img, (x, y), (x2, y2), (0, 255, 0), 2)
      
        # 이미지, 출력문구, 위치, 폰트, 크기, 색(r,g,b), 두께)
        gender = np.argmax(confidence)
        text = f'{label[gender]}:{confidence[gender]:.1%}'
        img= cv2.putText(img, text, (x-10,y-10), cv2.FONT_HERSHEY_PLAIN, 1.5, (0, 255, 0), 3)
    
    # 영상 출력
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    plt.imshow(img)

    'Machine Learning' 카테고리의 다른 글

    Machine Learning 실습 (21)  (0) 2022.07.19
    Machine Learning 실습 (20)  (0) 2022.07.19
    Machine Learning 실습 (19)  (0) 2022.07.19
    Machine Learning 실습 (18)  (0) 2022.07.19
    Machine Learning 실습 (17)  (0) 2022.07.18

    댓글

Designed by Tistory.