1000009041.jpg

(예시)

import cv2

# 카메라 열기
cap = cv2.VideoCapture(0)  # 0은 기본 카메라를 의미합니다. 여러 개의 카메라가 연결되어 있는 경우 숫자를 변경하여 선택할 수 있습니다.

# 카메라 속성 설정 (옵션)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)  # 프레임 너비 설정
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)  # 프레임 높이 설정

while cv2.waitKey(33) < 0:
    ret, frame = cap.read()  # 프레임 읽기
    cv2.imshow("VideoFrame", frame)  # 프레임 출력

# 메모리 해제
cap.release()
cv2.destroyAllWindows()                           
import cv2
import numpy as np

font = cv2.FONT_HERSHEY_SIMPLEX
def facedetect():

    face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
    eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
    fullbody_cascade = cv2.CascadeClassifier('haarcascade_fullbody.xml')
    try:
        cap = cv2.VideoCapture(0)
    except:
        print("Video Error")
        return

    while True:
        ret, frame = cap.read()
        if not ret:
            break

        gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
        # gray         = 분석될 이미지 또는 영상 프레임
        # scaleFactor  = 이미지에서 얼굴 크기가 서로 다른 것을 보상해주는값 
        # minNeighbors = 얼굴 사이의 최소 간격( 픽셀 ) 
        # minSize      = 얼굴의 최소 크기
        #faces = face_cascade.detectMultiScale(gray,scaleFactor=1.3,minNeighbors=5,minSize=(100,100))
        #eye  =   eye_cascade.detectMultiScale(gray,scaleFactor=1.3,minNeighbors=5,minSize=(100,100))
        fullbody = fullbody_cascade.detectMultiScale(gray,scaleFactor=1.3,minNeighbors=5,minSize=(100,100))
        
        for (x,y,w,h) in fullbody:
            cv2.rectangle(frame, (x,y), (x+w, y+h), (0,255,0), 2)
            cv2.putText(frame,'Faces',(x-5,y-5),font,0.5,(255,0,0),2)

        cv2.imshow('frame',frame)

        k = cv2.waitKey(1)
        if k == 27:
            break

    cap.release()
    cv2.destroyAllWindows()

facedetect()

에러가 많이 남으로 인하여

1000009042.jpg

위에 보이는 카메라로 교체했다