Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cv2
- import mediapipe as mp
- from json import dumps
- mp_drawing = mp.solutions.drawing_utils
- mp_hands = mp.solutions.hands
- def dump_as_json(data_point):
- return dumps({'x': data_point.x, 'y': data_point.y, 'z': data_point.z})
- cap = cv2.VideoCapture(0)
- with mp_hands.Hands(
- max_num_hands=2,
- min_detection_confidence=0.8,
- min_tracking_confidence=0.8) as hands:
- while cap.isOpened():
- success, image = cap.read()
- if not success:
- print("Ignoring empty camera frame.")
- # If loading a video, use 'break' instead of 'continue'.
- continue
- # Flip the image horizontally for a later selfie-view display, and convert
- # the BGR image to RGB.
- image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)
- # To improve performance, optionally mark the image as not writeable to
- # pass by reference.
- image.flags.writeable = False
- results = hands.process(image)
- # Draw the hand annotations on the image.
- image.flags.writeable = True
- image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
- if results.multi_hand_landmarks:
- for i, hand_landmarks in enumerate(results.multi_hand_landmarks):
- for data_point in hand_landmarks.landmark:
- print(dump_as_json(data_point))
- mp_drawing.draw_landmarks(
- image, hand_landmarks, mp_hands.HAND_CONNECTIONS)
- cv2.imshow('MediaPipe Hands', image)
- if cv2.waitKey(5) & 0xFF == 27:
- break
- cap.release()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement