diff --git a/ocv_corner_tracker.py b/ocv_corner_tracker.py index 8cd8fb1..4d6a606 100644 --- a/ocv_corner_tracker.py +++ b/ocv_corner_tracker.py @@ -311,9 +311,15 @@ if __name__ == '__main__': # Parse command line args parser = argparse.ArgumentParser(description="Gearbox Tracker") parser.add_argument("filename") + parser.add_argument("--scale") args = parser.parse_args() video = cv2.VideoCapture(args.filename) + # Parse scale + scale = 1.0 + if args.scale is not None: + scale = np.float32(args.scale) + # Let's go colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 0, 255), (0, 255, 255), (255, 255, 255)] tracker_count = 0 @@ -337,6 +343,8 @@ if __name__ == '__main__': print('Cannot read video file') key_wait = -1 + dist_min = [[0, 0]]*len(tracker_list) + dist_max = [[0, 0]]*len(tracker_list) while True: # Start timer timer = cv2.getTickCount() @@ -348,8 +356,13 @@ if __name__ == '__main__': for ct in tracker_list: mean_distance = ct.process(image, image_anno) if mean_distance is not None: - cv2.putText(image_anno, f"Distance [{i}] : ({mean_distance[0]:+05.2f}, {mean_distance[1]:+05.2f})", - (20, 20 + 20 * i), cv2.FONT_HERSHEY_SIMPLEX, 0.5, ct.color, 1) + scaled_distance = (scale*mean_distance[0], scale*mean_distance[1]) + dist_min[i][0] = min(scaled_distance[0], dist_min[i][0]) + dist_min[i][1] = min(scaled_distance[1], dist_min[i][1]) + dist_max[i][0] = max(scaled_distance[0], dist_max[i][0]) + dist_max[i][1] = max(scaled_distance[1], dist_max[i][1]) + cv2.putText(image_anno, f"Distance [{i}] : ({scaled_distance[0]:+05.2f}, {scaled_distance[1]:+05.2f}), Min: ({dist_min[i][0]:+05.2f}, {dist_min[i][1]:+05.2f}), Max: ({dist_max[i][0]:+05.2f}, {dist_max[i][1]:+05.2f})", + (20, 20 + 20 * i), cv2.FONT_HERSHEY_SIMPLEX, 0.8, ct.color, 2) i += 1 # Calculate Frames per second (FPS)