Пример #1
0
 logger.debug('processing {0} frame'.format(frame_id))
 len_frame = len(frames)
 frames = [frame] + frames[:min(2, len(frames))]
 if len(frames) == 3:
     diff = frame_diff(frames[0], frames[1], frame)
     val = numpy.mean(diff)
     data = numpy.hstack(([val], data[:min(args.n_samples, data.shape[0])]))
     data_avg = numpy.mean(data)
     data_std = numpy.std(data)
     data_var = numpy.abs(val-data_avg)/data_std
     logger.debug('data_avg: {0}, data_std: {1}, data_var: {2}, value: {3}'.format(data_avg, data_std, data_var, val))
     critical = (data_var > args.offset) and (frame_id > args.n_min)
     if args.display:
         msg0 = "avg: {0}, std: {0}, var: {1}".format(data_avg, data_std, data_var)
         msg1 = "critical image: {0}".format(critical)
         cv2.imshow('input frame', Scripts.display_message(frame, msg0, msg1))
         cv2.imshow('frame_diff', Scripts.display_message(diff, msg0, msg1))
     if critical and not triggered:
         triggered = True
         logger.info('Significant Motion Detected on Frame {0}!'.format(frame_id))
         if args.dump_images:
             img_path = '{0}_inputFrame.png'.format(frame_id)
             dif_path = '{0}_diffFrame.png'.format(frame_id)
             if args.dump_path:
                 img_path = os.path.join(args.dump_path, img_path)
                 dif_path = os.path.join(args.dump_path, dif_path)
             logger.debug('saving inputFrame to {0}'.format(img_path))
             logger.debug('saving diffFrame to {0}'.format(dif_path))
             cv2.imwrite(img_path, frame)
             assert os.path.exists(img_path), 'inputFrame did not save correctly'
             cv2.imwrite(dif_path, diff)