-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhand-tracking.py
More file actions
39 lines (30 loc) · 1.11 KB
/
hand-tracking.py
File metadata and controls
39 lines (30 loc) · 1.11 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
29
30
31
32
33
34
35
36
37
38
39
import cv2
import mediapipe as mp
import time
cap = cv2.VideoCapture(0)
mp_hands = mp.solutions.hands
hands = mp_hands.Hands()
mp_draw = mp.solutions.drawing_utils
prev_time = 0
curr_time = 0
while True:
success, img = cap.read()
imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
results = hands.process(imgRGB)
#print(results.multi_hand_landmarks)
if results.multi_hand_landmarks:
for hand_lms in results.multi_hand_landmarks:
for id, lm in enumerate(hand_lms.landmark):
#print(id, lm)
height, width, channel = img.shape
center_x, center_y = int(lm.x*width), int(lm.y*height)
print(id, center_x, center_y)
#if id == 0:
cv2.circle(img, (center_x, center_y), 10, (255, 0, 0), cv2.FILLED)
mp_draw.draw_landmarks(img, hand_lms, mp_hands.HAND_CONNECTIONS)
curr_time = time.time()
fps = 1/(curr_time - prev_time)
prev_time = curr_time
cv2.putText(img, str(int(fps)), (10, 70), cv2.FONT_HERSHEY_PLAIN, 3, (250, 0, 0), 3)
cv2.imshow('image', img)
cv2.waitKey(1)