File size: 925 Bytes
0aba763
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# DrawUtils 
# not PIL,CV2,Numpy drawing method
import math
# 2024-11-29 add calculate_distance
def points_to_box(points):
  x1=float('inf')
  x2=0
  y1=float('inf')
  y2=0
  for point in points:
    if point[0]<x1:
      x1=point[0]
    if point[0]>x2:
      x2=point[0]
    if point[1]<y1:
      y1=point[1]
    if point[1]>y2:
      y2=point[1]
  return [x1,y1,x2-x1,y2-y1]

def box_to_point(box):
  return [
    [box[0],box[1]], 
    [box[0]+box[2],box[1]],
    [box[0]+box[2],box[1]+box[3]],
    [box[0],box[1]+box[3]]
  ]

def plus_point(base_pt,add_pt):
  return [base_pt[0]+add_pt[0],base_pt[1]+add_pt[1]]

def box_to_xy(box):
  return [box[0],box[1],box[2]+box[0],box[3]+box[1]]

def to_int_points(points):
  int_points=[]
  for point in points:
    int_points.append([int(point[0]),int(point[1])])
  return int_points

def calculate_distance(xy, xy2):
    return math.sqrt((xy2[0] - xy[0])**2 + (xy2[1] - xy[1])**2)