티스토리 뷰

반응형


우선 얼굴을 검출하기 위해 


https://github.com/opencv/opencv/tree/master/data/haarcascades


위 github 에 들어가 frontalface_default.xml 파일을 받아온다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import cv2
import numpy as np
 
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
 
face_cascade = cv2.CascadeClassifier("./haarcascade/haarcascade_frontalface_default.xml")
 
 
while True:
    
    ret, frame = cap.read()
    
    if not ret:
        break
 
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray,1.08,5)
    for x,y,w,h in faces:
        cv2.rectangle(frame, (x,y), (x+w, y+h), (0,255,0), 2)
    
    cv2.imshow("Face",frame)
    if cv2.waitKey(1)>0:
        break
 
cap.release()
cv2.destroyAllWindows()
cs


xml 파일을 불러온 후에


원래 영상프레임인 frame을 gray로 변환시켜 주고 이 gray를 이용해서 detectMultiScale에 넣어준다.


faces로 넘어온 좌표 정보를 이용하여 얼굴 크기에 맞게 사각형을 그려준다.



반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday