Я пытался обнаружить лица с моей веб-камеры, но он обнаружил только первое лицо, появившееся в первом кадре, а затем будет sh, я использовал mtcnn для операции обнаружения
import cv2
i = 0
capture = cv2.VideoCapture(0)
while(True):
ret, frame = capture.read()
frames_tracked = []
print('\rTracking frame: {}'.format(i + 1), end='')
frame_pil = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
frame_pil = Image.fromarray(frame_pil)
boxes,_ = mtcnn.detect(frame_pil)
frame_draw = frame_pil.copy()
draw = ImageDraw.Draw(frame_draw)
for box in boxes:
draw.rectangle(box.tolist(), outline=(255, 0, 0), width=6)
frames_tracked.append(frame_draw.resize((640, 360), Image.BILINEAR))
d = display.display(frames_tracked[0], display_id=True)
i = 1
try:
while True:
d.update(frames_tracked[i % len(frames_tracked)])
i += 1
except KeyboardInterrupt:
pass
if cv2.waitKey('q') == 27:
break
capture.release()
cv2.destroyAllWindows()
, пока в первом кадре нет лица, оно будет иметь значение sh, и возникнет ошибка
TypeError: объект 'NoneType' не может быть повторен
Я хочу, чтобы даже нет лиц, он останется в плену и ищет лица. после обнаружения первого лица в первом кадре выдается эта ошибка:
TypeError: stat: путь должен быть строкой, байтами, os.PathLike или целым числом, а не cv2.VideoCapture
http://dpaste.com/04WXP33
спасибо за помощь