diff --git a/croppa/main.py b/croppa/main.py index cf6e5d2..f7982e5 100644 --- a/croppa/main.py +++ b/croppa/main.py @@ -2818,6 +2818,15 @@ class VideoEditor: self.TIMELINE_COLOR_CUT_POINT, 3, ) + cv2.putText( + frame, + "1", + (cut_start_x - 5 + 1, bar_y - 5 + 1), + cv2.FONT_HERSHEY_SIMPLEX, + 0.4, + (0, 0, 0), + 2, + ) cv2.putText( frame, "1", @@ -2838,6 +2847,15 @@ class VideoEditor: self.TIMELINE_COLOR_CUT_POINT, 3, ) + cv2.putText( + frame, + "2", + (cut_end_x - 5 + 1, bar_y - 5 + 1), + cv2.FONT_HERSHEY_SIMPLEX, + 0.4, + (0, 0, 0), + 2, + ) cv2.putText( frame, "2", @@ -2869,6 +2887,15 @@ class VideoEditor: ) # Label template with its start frame + cv2.putText( + frame, + str(start_frame), + (start_x + 2 + 1, bar_y + 10 + 1), + cv2.FONT_HERSHEY_SIMPLEX, + 0.3, + (0, 0, 0), + 2, + ) cv2.putText( frame, str(start_frame), @@ -2896,6 +2923,15 @@ class VideoEditor: # Draw frame difference threshold info region_status = "region" if self.interesting_region else "full frame" threshold_text = f"Interesting: {self.frame_difference_threshold:.0f}% (gap: {self.frame_difference_gap}, {region_status})" + cv2.putText( + frame, + threshold_text, + (bar_x_start + 1, bar_y - 15 + 1), + cv2.FONT_HERSHEY_SIMPLEX, + 0.4, + (0, 0, 0), + 2, + ) cv2.putText( frame, threshold_text, @@ -3024,14 +3060,14 @@ class VideoEditor: cv2.putText( canvas, info_text, - (10, 30), + (10 + 2, 30 + 2), cv2.FONT_HERSHEY_SIMPLEX, 0.7, - (255, 255, 255), - 2, + (0, 0, 0), + 3, ) cv2.putText( - canvas, info_text, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 0), 1 + canvas, info_text, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 255, 255), 2 ) # Add video navigation info @@ -3040,11 +3076,11 @@ class VideoEditor: cv2.putText( canvas, video_text, - (10, 60), + (10 + 2, 60 + 2), cv2.FONT_HERSHEY_SIMPLEX, 0.6, - (255, 255, 255), - 2, + (0, 0, 0), + 3, ) cv2.putText( canvas, @@ -3052,8 +3088,8 @@ class VideoEditor: (10, 60), cv2.FONT_HERSHEY_SIMPLEX, 0.6, - (0, 0, 0), - 1, + (255, 255, 255), + 2, ) y_offset = 90 else: @@ -3065,11 +3101,11 @@ class VideoEditor: cv2.putText( canvas, crop_text, - (10, y_offset), + (10 + 2, y_offset + 2), cv2.FONT_HERSHEY_SIMPLEX, 0.6, - (255, 255, 255), - 2, + (0, 0, 0), + 3, ) cv2.putText( canvas, @@ -3077,8 +3113,8 @@ class VideoEditor: (10, y_offset), cv2.FONT_HERSHEY_SIMPLEX, 0.6, - (0, 0, 0), - 1, + (255, 255, 255), + 2, ) y_offset += 30 @@ -3090,11 +3126,11 @@ class VideoEditor: cv2.putText( canvas, cut_text, - (10, y_offset), + (10 + 2, y_offset + 2), cv2.FONT_HERSHEY_SIMPLEX, 0.6, - (255, 255, 255), - 2, + (0, 0, 0), + 3, ) cv2.putText( canvas, @@ -3102,8 +3138,8 @@ class VideoEditor: (10, y_offset), cv2.FONT_HERSHEY_SIMPLEX, 0.6, - (0, 0, 0), - 1, + (255, 255, 255), + 2, ) # Add timestamp and video name in top-right corner @@ -3208,6 +3244,7 @@ class VideoEditor: cv2.circle(canvas, (sx, sy), 8, (255, 255, 255), 2) # Draw confidence text conf_text = f"{confidence:.2f}" + cv2.putText(canvas, conf_text, (sx + 10 + 1, sy - 10 + 1), cv2.FONT_HERSHEY_SIMPLEX, self.FONT_SCALE_SMALL, (0, 0, 0), 2) cv2.putText(canvas, conf_text, (sx + 10, sy - 10), cv2.FONT_HERSHEY_SIMPLEX, self.FONT_SCALE_SMALL, (255, 255, 255), 1) @@ -3442,6 +3479,8 @@ class VideoEditor: cv2.rectangle(canvas, (bg_x, bg_y), (bg_x + bg_w, bg_y + bg_h), (255, 255, 0), 2) # Text + cv2.putText(canvas, self.search_progress_text, (bg_x + padding + 2, bg_y + 20 + 2), + cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 0), 3) cv2.putText(canvas, self.search_progress_text, (bg_x + padding, bg_y + 20), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2) @@ -3496,6 +3535,7 @@ class VideoEditor: # Draw selection info info_text = f"Region: {sel_w}x{sel_h}" + cv2.putText(canvas, info_text, (sel_x + 1, sel_y - 5 + 1), cv2.FONT_HERSHEY_SIMPLEX, self.FONT_SCALE_SMALL, (0, 0, 0), 2) cv2.putText(canvas, info_text, (sel_x, sel_y - 5), cv2.FONT_HERSHEY_SIMPLEX, self.FONT_SCALE_SMALL, (0, 255, 255), 1) window_title = "Image Editor" if self.is_image_mode else "Video Editor"