-
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_SIMPLEXimport 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