You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
4 years ago
|
import numpy as np
|
||
|
import cv2
|
||
|
|
||
|
palette = (2 ** 11 - 1, 2 ** 15 - 1, 2 ** 20 - 1)
|
||
|
|
||
|
|
||
|
def compute_color_for_labels(label):
|
||
|
"""
|
||
|
Simple function that adds fixed color depending on the class
|
||
|
"""
|
||
|
color = [int((p * (label ** 2 - label + 1)) % 255) for p in palette]
|
||
|
return tuple(color)
|
||
|
|
||
|
|
||
|
def draw_boxes(img, bbox, identities=None, offset=(0,0)):
|
||
|
for i,box in enumerate(bbox):
|
||
|
x1,y1,x2,y2 = [int(i) for i in box]
|
||
|
x1 += offset[0]
|
||
|
x2 += offset[0]
|
||
|
y1 += offset[1]
|
||
|
y2 += offset[1]
|
||
|
# box text and bar
|
||
|
id = int(identities[i]) if identities is not None else 0
|
||
|
color = compute_color_for_labels(id)
|
||
|
label = '{}{:d}'.format("", id)
|
||
|
t_size = cv2.getTextSize(label, cv2.FONT_HERSHEY_PLAIN, 2 , 2)[0]
|
||
|
cv2.rectangle(img,(x1, y1),(x2,y2),color,3)
|
||
|
cv2.rectangle(img,(x1, y1),(x1+t_size[0]+3,y1+t_size[1]+4), color,-1)
|
||
|
cv2.putText(img,label,(x1,y1+t_size[1]+4), cv2.FONT_HERSHEY_PLAIN, 2, [255,255,255], 2)
|
||
|
return img
|
||
|
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
for i in range(82):
|
||
|
print(compute_color_for_labels(i))
|