|
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] |
|
|