YogaBuddy / utils /pose_utils.py
dilkushsingh's picture
Upload 45 files
b9f54a3 verified
Raw
History Blame Contribute Delete
1.1 kB
import mediapipe as mp
import cv2
mp_pose = mp.solutions.pose
pose_detector = mp_pose.Pose(static_image_mode=True, model_complexity=2)
mp_drawing = mp.solutions.drawing_utils
def detect_pose(frame):
rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = pose_detector.process(rgb_frame)
return results if results else False
def detect_keypoints(img):
results = detect_pose(img)
keypoints = {}
if results.pose_landmarks:
for idx, landmark in enumerate(results.pose_landmarks.landmark):
keypoints[idx] = (landmark.x, landmark.y, landmark.z)
return keypoints
def draw_landmarks(frame):
results = detect_pose(frame)
return mp_drawing.draw_landmarks(frame, results.pose_landmarks, mp_pose.POSE_CONNECTIONS)
def fetch_landmarks(frame):
results = detect_pose(frame)
draw_landmarks(frame)
if results.pose_landmarks:
row = []
landmarks = results.pose_landmarks.landmark
for landmark in landmarks:
row.extend([landmark.x, landmark.y, landmark.z, landmark.visibility])
return row