用Python和OpenCV分别检测自己和其他人的脸

问题描述 投票:0回答:1

我想制作一个面部检测应用程序,先检测我的面部,然后将其放入带有标题的框(作为“ my_name”),同时还要检测其他人将其放入带有标题的框(如“未知”)。我已经编写了一个可以正常运行的程序,但是我不确定它是否可以运气,或者该概念确实有效。我想请你帮忙。我的程序在算法上是否正确?如果没有,您能建议些什么吗?

import cv2

name_cascade = cv2.CascadeClassifier('cascade.xml')
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)

while True:
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    names = name_cascade.detectMultiScale(gray, 1.3, 5)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    flag = 0

    for (x,y,w,h) in names:
        font = cv2.FONT_HERSHEY_COMPLEX
        cv2.putText(frame, 'Name', (x-4,y-4), font, 0.5, (0,255,255), 1, cv2.LINE_AA)
        cv2.rectangle(frame, (x,y), (x+w, y+h), (255,0,0), 2)
        flag = 1

    if flag == 0:
        for (x,y,w,h) in faces:
            font = cv2.FONT_HERSHEY_COMPLEX
            cv2.putText(frame, 'Unknown', (x-4,y-4), font, 0.5, (0,255,255), 1, cv2.LINE_AA)
            cv2.rectangle(frame, (x,y), (x+w, y+h), (255,0,0), 2)


    cv2.imshow('img', frame)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break

cap.release()
cv2.destroyAllWindows()
python opencv face-detection
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.