| import cv2 | |
| import random | |
| def visualize(image_path, detections, output_path): | |
| image = cv2.imread(image_path) | |
| colors = {} | |
| for det in detections: | |
| gid = det["group_id"] | |
| if gid not in colors: | |
| rng = random.Random(gid) | |
| colors[gid] = [rng.randint(0, 255) for _ in range(3)] | |
| x1,y1,x2,y2 = det["bbox"] | |
| cv2.rectangle(image,(x1,y1),(x2,y2),colors[gid],3) | |
| cv2.putText( | |
| image, | |
| f"G{gid}", | |
| (x1,y1-5), | |
| cv2.FONT_HERSHEY_SIMPLEX, | |
| 0.6, | |
| colors[gid], | |
| 2 | |
| ) | |
| cv2.imwrite(output_path,image) | |