File size: 1,620 Bytes
1cdc47e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import numpy as np
import cv2


joint_pairs = [[0, 1], [1, 2], [2, 3], [0, 4], [4, 5], [5, 6],
               [0, 7], [7, 8], [8, 9], [9, 10], [8, 11], [11, 12],
               [12, 13], [8, 14], [14, 15], [15, 16]]

colors_kps = [[255, 0, 0], [255, 85, 0], [255, 170, 0], [255, 255, 0], [170, 255, 0], [85, 255, 0], [0, 255, 0],
              [50, 205, 50], [0, 255, 170], [0, 255, 255], [0, 170, 255], [0, 85, 255], [0, 0, 255], [85, 0, 255],
              [170, 0, 255], [255, 0, 255]]


def write(x, img):
    # c1 = tuple(x[1:3].int())
    # c2 = tuple(x[3:5].int())
    c1 = (int(x[0]), int(x[1]))
    c2 = (int(x[2]), int(x[3]))

    cls = int(x[-1])
    color = [0, 97, 255]
    label = 'People {}'.format(x[-1])
    cv2.rectangle(img, c1, c2, color, 1)
    t_size = cv2.getTextSize(label, cv2.FONT_HERSHEY_PLAIN, 1, 1)[0]
    c2 = c1[0] + t_size[0] + 3, c1[1] + t_size[1] + 4
    cv2.rectangle(img, c1, c2, color, -1)
    cv2.putText(img, label, (c1[0], c1[1] + t_size[1] + 4), cv2.FONT_HERSHEY_PLAIN, 1, [225, 255, 255], 1);
    return img


def plot_keypoint(image, coordinates):
    # USE cv2
    for i in range(coordinates.shape[0]):
        pts = coordinates[i]
        for color_i, jp in zip(colors_kps, joint_pairs):
            pt0 = pts[jp, 0]
            pt1 = pts[jp, 1]
            pt0_0, pt0_1, pt1_0, pt1_1 = int(pt0[0]), int(pt0[1]), int(pt1[0]), int(pt1[1])

            cv2.line(image, (pt0_0, pt1_0), (pt0_1, pt1_1), color_i, 5)
            # cv2.circle(image,(pt0_0, pt0_1), 2, color_i, thickness=-1)
            # cv2.circle(image,(pt1_0, pt1_1), 2, color_i, thickness=-1)
    return image