From a90e13a9262bdf780e9f5d9e81cc18348b95d569 Mon Sep 17 00:00:00 2001 From: Victor Hall Date: Sun, 3 Mar 2024 16:55:30 -0500 Subject: [PATCH] cleaner viewing for grounding ui --- scripts/grounding_ui.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/scripts/grounding_ui.py b/scripts/grounding_ui.py index c01bcd4..a345857 100644 --- a/scripts/grounding_ui.py +++ b/scripts/grounding_ui.py @@ -40,14 +40,13 @@ class ImageBoundingBoxApp: img_path = os.path.join(self.folder_path, image_name) ent_path = img_path.rsplit('.', 1)[0] + '.ent' - # Load image image = cv2.imread(img_path) + image_cp = image.copy() image_h, image_w, _ = image.shape font_scale = max(0.5 * (image_h + image_w) / 1000,0.35) thickness = max(int(0.5 * (image_h + image_w) / 500),1) - print(f"Font Scale: {font_scale}, Thickness: {thickness}") + shadow_thickness = 3 - # Read .ent file if os.path.exists(ent_path): with open(ent_path, 'r') as f: entities = ast.literal_eval(f.read()) @@ -55,15 +54,17 @@ class ImageBoundingBoxApp: for entity_name, _, bboxes in entities: for (x1_norm, y1_norm, x2_norm, y2_norm) in bboxes: orig_x1, orig_y1, orig_x2, orig_y2 = int(x1_norm * image_w), int(y1_norm * image_h), int(x2_norm * image_w), int(y2_norm * image_h) - color = (0, 255, 0) # Green color for bounding box - cv2.rectangle(image, (orig_x1, orig_y1), (orig_x2, orig_y2), color, 2) - #shadow text - cv2.putText(image, entity_name, (orig_x1, orig_y1 + int(30*font_scale)), cv2.FONT_HERSHEY_SIMPLEX, font_scale, (0,0,0), thickness+3) - #cv2.putText(image, entity_name, (orig_x1+1, orig_y1 + int(30*font_scale)-1), cv2.FONT_HERSHEY_SIMPLEX, font_scale, (0,0,0), thickness) - #text + rand_r = np.random.randint(0, 128) + rand_g = np.random.randint(144, 240) + rand_b = 128 - rand_r + color = (rand_r, rand_g, rand_b) # Green color for bounding box + cv2.rectangle(image, (orig_x1, orig_y1), (orig_x2, orig_y2), color, thickness) + cv2.putText(image, entity_name, (orig_x1, orig_y1 + int(30*font_scale)), cv2.FONT_HERSHEY_SIMPLEX, font_scale, (0,0,0), thickness+shadow_thickness) cv2.putText(image, entity_name, (orig_x1, orig_y1 + int(30*font_scale)), cv2.FONT_HERSHEY_SIMPLEX, font_scale, (255,255,255), thickness) + + overlay_weight = 0.75 + image = cv2.addWeighted(image, overlay_weight, image_cp, 1-overlay_weight, 0.0) - # Convert to PIL Image to display in Tkinter image_pil = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) # Resize image to fit the canvas size while maintaining aspect ratio