我有一个面部检测系统,可以在检测到面部时播放视频。 该系统的问题是,即使此人不在摄像机内,视频也将回放到最后。 我的目标是在此人不在镜头前时立即停止播放视频。
这是我的代码段:
def detect_face(self):
face_cascade = cv2.CascadeClassifier(self.CASE_PATH)
video_capture = VideoStream().start()
while True:
frame = video_capture.read()
frame = imutils.resize(frame,width=500)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(
gray,
scaleFactor=1.2,
minNeighbors=10,
minSize=(self.face_size, self.face_size)
)
face_imgs = np.empty((len(faces), self.face_size, self.face_size, 3))
for i, face in enumerate(faces):
face_img, cropped = self.crop_face(frame, face, margin=40, size=self.face_size)
(x, y, w, h) = cropped
cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 200, 0), 2)
face_imgs[i,:,:,:] = face_img
for i, face in enumerate(faces):
cap = cv2.VideoCapture('/Desktop/test.mp4')
while True:
ret, frameo = cap.read()
cv2.imshow('framey',frameo)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()