James_64_64 Ответов: 1

Как проверить, не обнаружено ли это лицо с помощью cvlib


cvlib library in python is well established and many people in research community uses it. I noticed that if threr is no face detected the (for) loop stops for exampe, if i have the following code:


cap = cv2.VideoCapture(0)
if not (cap.isOpened()):
    print('Could not open video device')
#To set the resolution
vid_height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
vid_width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
while(True):
    ret, frame = cap.read()
    if not ret:
        continue
    faces, confidences = cv.detect_face(frame)
    # loop through detected faces and add bounding box
    for face in faces:
        (startX,startY) = face[0],face[1]
        (endX,endY) = face[2],face[3]
        cv2.rectangle(frame, (startX,startY), (endX,endY), (0,255,0), 2)
        crop_img = frame[startY-5:endY-5, startX-5:endX-5]```
        print(faces)
        cv2.imshow('object detected',frame)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break
cap.release()
cv2.destroyAllWindows()




as Im printing (faces) the output would be somthing like this


<pre>[[392, 256, 480, 369]]
[[392, 256, 478, 369]]
[[392, 255, 478, 370]]
.
.
.
[[392, 255, 478, 370]]



However, as soon as I block the camera or move my head away from it, as there is no face detected, the for loop freezes or pauses till it sees a face to detect.

I need an if statement or any other condition to check this freeze or a pause to produce do something else.


Что я уже пробовал:

I could not figure out how it is done as when these is no detection only row stream is produce

1 Ответов

Рейтинг:
7

Afzaal Ahmad Zeeshan

Цитата:
цикл for замирает или останавливается до тех пор, пока не увидит лицо для обнаружения.
В этом и заключается смысл цикла for В вашей программе. Он будет выполнять блок кода только для лиц в вашем списке.
Цитата:
Как проверить, не обнаружено ли это лицо с помощью cvlib
Эта часть была проще, чем код распознавания лиц, который "ты" писанное. Вы могли бы просто использовать:
if len(faces) == 0:
   # no faces in list, your code here
else:
   for face in faces:
       # your code


James_64_64

Привет @Afzaal Ahmad Zeeshan, ну код, который написал "Ты", работает нормально, большое тебе спасибо. во-вторых, я никогда не говорил, что написал код сам, я сказал, что он хорошо зарекомендовал себя, но я буду рад поделиться с вами некоторыми своими работами *_*.