未检测到脸部时停止视频

时间:2018-09-20 22:19:19

标签: python opencv

我有一个面部检测系统,可以在检测到面部时播放视频。 该系统的问题是,即使此人不在摄像机内,视频也将回放到最后。 我的目标是在此人不在镜头前时立即停止播放视频。

这是我的代码段:

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()

0 个答案:

没有答案