svjack's picture
Upload folder using huggingface_hub
d015578 verified
import cv2
# Demo libs
from spiga.demo.visualize.layouts.plot_basics import BasicLayout
class BboxLayout(BasicLayout):
BasicLayout.thickness_dft['bbox'] = 2
def __init__(self):
super().__init__()
def draw_bbox(self, canvas, bbox, score_thr=0, show_score=True, thick=None, color=BasicLayout.colors['blue']):
if thick is None:
thick = self.thickness['bbox']
if bbox[4] > score_thr:
text = "{:.4f}".format(bbox[4])
b = list(map(int, bbox))
cv2.rectangle(canvas, (b[0], b[1]), (b[2], b[3]), color, thick)
if show_score:
self.draw_bbox_text(canvas, b, text, offset=(0, 12), color=color)
return canvas
def draw_bbox_line(self, canvas, bbox, score_thr=0, show_score=True, thick=None, color=BasicLayout.colors['blue']):
if thick is None:
thick = self.thickness['bbox']
if bbox[4] > score_thr:
text = "{:.4f}".format(bbox[4])
b = list(map(int, bbox))
cv2.line(canvas, (b[0], b[1]), (b[0], b[1] + 15), color, thick)
cv2.line(canvas, (b[0], b[1]), (b[0] + 100, b[1]), color, thick)
if show_score:
self.draw_bbox_text(canvas, b, text, offset=(0, 12), color=color)
return canvas
def draw_bbox_text(self, canvas, bbox, text, offset=(0, 0), color=BasicLayout.colors['white']):
b = list(map(int, bbox))
cx = b[0] + offset[0]
cy = b[1] + offset[1]
cv2.putText(canvas, text, (cx, cy), cv2.FONT_HERSHEY_DUPLEX, 0.5, color)
return canvas
def draw_bboxes(self, canvas, dets, score_thr=0, show_score=True, thick=None, colors=(BasicLayout.colors['blue'])):
num_colors = len(colors)
for idx, bbox in enumerate(dets):
color = colors[idx % num_colors]
canvas = self.draw_bbox(canvas, bbox, score_thr=score_thr, show_score=show_score, thick=thick, color=color)
return canvas