import cv2 def draw_text(img, text, font=cv2.FONT_HERSHEY_PLAIN, x=0, y=0, font_scale=1, font_thickness=2, text_color=(0, 255, 0), text_color_bg=(0, 0, 0) ): text_size, _ = cv2.getTextSize(text, font, font_scale, font_thickness) text_w, text_h = text_size cv2.rectangle(img, (x, y), (x + text_w, y + text_h), text_color_bg, -1) cv2.putText(img, text, (x, y + text_h + font_scale - 1), font, font_scale, text_color, font_thickness) return img def add_bboxes(img, bboxes, **kwargs): label = "dog" font_thickness=2 for idx, box in enumerate(bboxes): x1, y1 = int(box[0]), int(box[1]) x2, y2 = int(box[2]), int(box[3]) if "scores" in kwargs.keys(): score = list(kwargs["scores"])[idx] label = "{0:.2f}%".format(score*100) font_thickness=1 img = cv2.rectangle(img, (x1, y1), (x2, y2), (36,255,12), 2) img = draw_text(img, label, x=x1, y=y1-10, font_thickness=font_thickness) return img def reformat_bbox(coord): """ Converts XYWH to XYXY """ x1, y1 = coord[0], coord[1] x2, y2 = x1 + coord[2], y1 + coord[3] return [x1, y1, x2, y2]