File size: 1,614 Bytes
58665c8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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)