| import cv2 | |
| import mediapipe as mp | |
| import time | |
| cap = cv2.VideoCapture(0) | |
| mpHands = mp.solutions.hands | |
| hands = mpHands.Hands(False) | |
| mpDraw = mp.solutions.drawing_utils | |
| pTime = 0 | |
| cTime = 0 | |
| while True: | |
| _, img = cap.read() | |
| img = cv2.flip(img, 1) | |
| imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) | |
| results = hands.process(imgRGB) | |
| if results.multi_hand_landmarks: | |
| for handLms in results.multi_hand_landmarks: | |
| for id, lm in enumerate(handLms.landmark): | |
| h, w, c = img.shape | |
| cx, cy = int(lm.x*w), int(lm.y*h) | |
| if id == 4: | |
| cv2.circle(img,(cx, cy), 15, (255,0,255), cv2.FILLED) | |
| if id == 8: | |
| cv2.circle(img,(cx, cy), 15, (255,0,255), cv2.FILLED) | |
| mpDraw.draw_landmarks(img, handLms, mpHands.HAND_CONNECTIONS) | |
| cTime = time.time() | |
| fps = 1/(cTime - pTime) | |
| pTime = cTime | |
| cv2.putText(img, str(int(fps)), (10,78), cv2.FONT_HERSHEY_PLAIN, 3, (255,255,0), 3) | |
| cv2.imshow("Image",img) | |
| cv2.waitKey(1) | |