pbj0812의 코딩 일기

[PYTHON] OpenCV를 활용한 기생충 웹캠 어플리케이션 만들기 본문

ComputerLanguage_Program/PYTHON

[PYTHON] OpenCV를 활용한 기생충 웹캠 어플리케이션 만들기

pbj0812 2020. 2. 22. 22:09

0. 목표

 - 지난 기생충 포스터 만들기를 응용하여 기생충 어플리케이션 제작

1. 준비물

 - 웹캠

2. 코드

 1) library 호출

import cv2

 2) 구동 함수 제작

  (1) xml 파일 호출

  (2) try 구문을 통하여 웹캠의 유무를 확인(cv2.VideoCapture(0)의 번호를 변경하여 캠을 선택)

  (3) detectMultiScale을 통해 얼굴 탐색

  (4) for문을 통하여 얼굴 마다의 좌표 확인 및 지난 시간의 알고리즘을 삽입

  (5) esc 키를 통한 종료

def faceDetect():
    eye_detect = False
    face_cascade = cv2.CascadeClassifier("C:/Users/user/jupyter_works/opencv_python/xml/haarcascade_frontface.xml")
    print(face_cascade)
    
    try:
        cap = cv2.VideoCapture(0)
    except:
        print('fail')
        return
    
    while True:
        ret, frame = cap.read()
        if not ret:
            break
                        
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        faces = face_cascade.detectMultiScale(gray, 1.3, 5)
        
        color = (0, 0, 0)
        
        for (x, y, w, h) in faces:
       #     cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
            cv2.rectangle(frame,(x,y+int(h/28*10)),(x+w,y+int(h/28*14)),color,-1)
                    
        cv2.imshow('frame', frame)
        k = cv2.waitKey(30)
        if k == ord('i'):
            eye_detect = not eye_detect
        if k == 27:
            break
            
    cap.release()
    cv2.destroyAllWindows()

 3) 실행

faceDetect()

3. 결과

 

4. 참고

 - 참고 코드

Comments