Как вызвать предупреждение, когда лицо не распознается?

#python #opencv-python

#python #opencv-python

Вопрос:

Это код для обнаружения лица.

Я хочу, чтобы всякий раз, когда лицо распознается, на изображении лица отображался прямоугольник, и это нормально, но всякий раз, когда лицо не распознается, прямоугольник не отображается на изображении лица, и печатается какое-то сообщение.

 import cv2
face_cascade = cv2.CascadeClassifier('C:/Users/320052863/PycharmProjects/trial/venv/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('C:/Users/320052863/PycharmProjects/trial/venv/Lib/site-packages/cv2/data/haarcascade_eye.xml')
cap = cv2.VideoCapture(0)

while 1:

    ret, img = cap.read() 
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)

    for (x,y,w,h) in faces: 
        re = cv2.rectangle(img,(x,y),(x w,y h),(255,255,0),2)
        if 're' in locals():
            print('abhishek')
        else:
            print('gupta')
        roi_gray = gray[y:y h, x:x w] 
        roi_color = img[y:y h, x:x w]
    cv2.imshow('Abhishek',img)

    # Wait for Esc key to stop
    k = cv2.waitKey(30)
    if k == 13:
        break
cap.release()
cv2.destroyAllWindows()
  

Комментарии:

1. Не могли бы вы уточнить: что вы подразумеваете под распознанным? распознан как лицо или распознан как конкретный человек?

Ответ №1:

Похоже, что если в вашем скрипте после вашей строки:

 faces = face_cascade.detectMultiScale(gray, 1.3, 5)
  

вы вставляете следующую строку, она предупредит, если лица не обнаружены:

 if len(faces) == 0:
    print "No faces found"
  

Комментарии:

1. Я хочу отобразить это сообщение на веб-странице. как я могу это сделать, используя flask?

2. @AbhishekGupta Во-первых, пожалуйста, дайте отзыв о том, работает ли представленное решение для вас.

3. Но я хочу, чтобы это сообщение отображалось на веб-странице в виде всплывающего сообщения.

4. @AbhishekGupta Хорошо, отлично, пожалуйста, примите ответ и / или проголосуйте за него как за полезный, и тогда я смогу дать вам дополнительные советы.

5. На самом деле, я новый пользователь. У меня не более 15 репутации. Вот почему я не могу отдать голос.