diff --git a/CAM2ImageArchiver/CameraHandler.py b/CAM2ImageArchiver/CameraHandler.py index 3ae0875..be20c08 100644 --- a/CAM2ImageArchiver/CameraHandler.py +++ b/CAM2ImageArchiver/CameraHandler.py @@ -98,6 +98,10 @@ def run(self): frame_timestamp).strftime('%Y-%m-%d_%H-%M-%S-%f')) if self.image_difference_percentage: + # Check the percentage difference if last frame is not None + # by calculating the pixel-by-pixel value difference between + # last frame and current frame, then divide the diff by frame size. + # Count pixel value by using numpy. Check numpy docs for np.absolute and np.count_nonzero if frame.size != 0 and (type(camera.last_frame) == type(None) or (np.count_nonzero(np.absolute(camera.last_frame - frame)) * 100) / frame.size >= self.image_difference_percentage): cv2.imwrite(file_name, frame) camera.last_frame = frame diff --git a/CAM2ImageArchiver/test/test_camera.py b/CAM2ImageArchiver/test/test_camera.py index d38b00e..e10a28d 100644 --- a/CAM2ImageArchiver/test/test_camera.py +++ b/CAM2ImageArchiver/test/test_camera.py @@ -23,7 +23,6 @@ from CAM2ImageArchiver.CAM2ImageArchiver import CAM2ImageArchiver sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - class TestCamera(unittest.TestCase): def setUp(self): @@ -39,7 +38,7 @@ def setUp(self): 'camera_type': 'ip', 'ip': '207.251.86.238', 'port': '', - 'image_path': '/cctv254.jpg', + 'image_path': '/cctv290.jpg', 'video_path': '/axis-cgi/mjpg/video.cgi' } cam3 = {