Akjava's picture
iniit
58665c8
import cv2
import numpy as np
def draw_bbox(image,box,color=(255,0,0),thickness=1):
if thickness==0:
return
left = int(box[0])
top = int(box[1])
right = int(box[0]+box[2])
bottom = int(box[1]+box[3])
box_points =[(left,top),(right,top),(right,bottom),(left,bottom)]
cv2.polylines(image, [np.array(box_points)], isClosed=True, color=color, thickness=thickness)
def to_int_points(points):
int_points=[]
for point in points:
int_points.append([int(point[0]),int(point[1])])
return int_points
def draw_text(img, text, point, font_scale=0.5, color=(200, 200, 200), thickness=1):
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, str(text), point, font, font_scale, color, thickness, cv2.LINE_AA)
plot_text_color = (200, 200, 200)
plot_text_font_scale = 0.5
plot_index = 1
plot_text = True
def set_plot_text(is_plot,text_font_scale,text_color):
global plot_index,plot_text,plot_text_font_scale,plot_text_color
plot_text = is_plot
plot_index = 1
plot_text_font_scale = text_font_scale
plot_text_color = text_color
def plot_points(image,points,isClosed=False,circle_size=3,circle_color=(255,0,0),line_size=1,line_color=(0,0,255)):
global plot_index,plot_text
int_points = to_int_points(points)
if circle_size>0:
for point in int_points:
cv2.circle(image,point,circle_size,circle_color,-1)
if plot_text:
draw_text(image,plot_index,point,plot_text_font_scale,plot_text_color)
plot_index+=1
if line_size>0:
cv2.polylines(image, [np.array(int_points)], isClosed=isClosed, color=line_color, thickness=line_size)