import cv2 import numpy as np from PIL import Image, ImageDraw def draw_bboxes(img: Image.Image, boxes, color: tuple[int, int, int]) -> Image.Image: img_draw = ImageDraw.Draw(img) for box in boxes: img_draw.rectangle(box.tolist(), outline=color, width=2) return img def draw_label_on_bbox(image: np.ndarray, bbox: list[float], text: str) -> np.ndarray: image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) left_pos = bbox[0] bottom_pos = bbox[1] - 5 bottom_left_position = (int(left_pos), int(bottom_pos)) font = cv2.FONT_HERSHEY_SIMPLEX font_scale = .9 color = (255, 0, 0) thickness = 2 annotated_image = cv2.putText(image, text, bottom_left_position, font, font_scale, color, thickness) return cv2.cvtColor(annotated_image, cv2.COLOR_BGR2RGB)