-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfunctions.py
More file actions
28 lines (24 loc) · 2.1 KB
/
functions.py
File metadata and controls
28 lines (24 loc) · 2.1 KB
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
import pygame
from cv import PoseEstimator
def draw_body_outline(screen, x, y, w, h):
body_landmarks = PoseEstimator().getPoints()
if body_landmarks:
pygame.draw.line(screen, (255, 0, 0), (int(body_landmarks[11].x * w) + x, int(body_landmarks[11].y * h) + y), (int(body_landmarks[12].x * w) + x, int(body_landmarks[12].y * h) + y))
pygame.draw.line(screen, (255, 0, 0), (int(body_landmarks[11].x * w) + x, int(body_landmarks[11].y * h) + y), (int(body_landmarks[23].x * w) + x, int(body_landmarks[23].y * h) + y))
pygame.draw.line(screen, (255, 0, 0), (int(body_landmarks[12].x * w) + x, int(body_landmarks[12].y * h) + y), (int(body_landmarks[24].x * w) + x, int(body_landmarks[24].y * h) + y))
pygame.draw.line(screen, (255, 0, 0), (int(body_landmarks[23].x * w) + x, int(body_landmarks[23].y * h) + y), (int(body_landmarks[24].x * w) + x, int(body_landmarks[24].y * h) + y))
pygame.draw.line(screen, (255, 0, 0), (int(body_landmarks[11].x * w) + x, int(body_landmarks[11].y * h) + y), (int(body_landmarks[13].x * w) + x, int(body_landmarks[13].y * h) + y))
pygame.draw.line(screen, (255, 0, 0), (int(body_landmarks[12].x * w) + x, int(body_landmarks[12].y * h) + y), (int(body_landmarks[14].x * w) + x, int(body_landmarks[14].y * h) + y))
pygame.draw.line(screen, (255, 0, 0), (int(body_landmarks[13].x * w) + x, int(body_landmarks[13].y * h) + y), (int(body_landmarks[15].x * w) + x, int(body_landmarks[15].y * h) + y))
pygame.draw.line(screen, (255, 0, 0), (int(body_landmarks[14].x * w) + x, int(body_landmarks[14].y * h) + y), (int(body_landmarks[16].x * w) + x, int(body_landmarks[16].y * h) + y))
def clamp(n, smallest, largest): return max(smallest, min(n, largest))
def rotate_surface(surface, angle, pivot):
offset = pygame.math.Vector2(0, surface.get_height() // 2)
rotated_image = pygame.transform.rotozoom(surface, -angle, 1)
rotated_offset = offset.rotate(angle)
rect = rotated_image.get_rect(center=pivot+rotated_offset)
return rotated_image, rect
def total_exit():
PoseEstimator().stop_tracking()
pygame.quit()
exit()