使用 MediaPipe 获取主要关节角度 Python 代码示例
以下是使用 MediaPipe 获取主要关节角度的 Python 示例代码:
import cv2
import mediapipe as mp
import math
mp_drawing = mp.solutions.drawing_utils
mp_pose = mp.solutions.pose
# 初始化 MediaPipe 的姿势估计模型
pose = mp_pose.Pose()
# 读取图像
image = cv2.imread('test.jpg')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 运行姿势估计模型
results = pose.process(image)
# 获取左肩、左肘和左手腕的关键点坐标
left_shoulder = results.pose_landmarks.landmark[mp_pose.PoseLandmark.LEFT_SHOULDER]
left_elbow = results.pose_landmarks.landmark[mp_pose.PoseLandmark.LEFT_ELBOW]
left_wrist = results.pose_landmarks.landmark[mp_pose.PoseLandmark.LEFT_WRIST]
# 计算左臂的角度
angle = math.degrees(math.atan2(left_wrist.y - left_elbow.y, left_wrist.x - left_elbow.x) - math.atan2(left_shoulder.y - left_elbow.y, left_shoulder.x - left_elbow.x))
angle = abs(angle)
# 打印左臂角度
print('Left Arm Angle: ', angle)
# 显示图像并绘制关键点和连接线
image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
mp_drawing.draw_landmarks(image, results.pose_landmarks, mp_pose.POSE_CONNECTIONS)
cv2.imshow('MediaPipe Pose', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的示例中,我们使用了 MediaPipe 的姿势估计模型来获取图像中的关键点坐标。然后,我们计算了左臂的角度,并打印了结果。最后,我们使用 OpenCV 绘制了关键点和连接线,并显示了图像。您可以根据需要修改代码以获取其他关节的角度。
原文地址: https://www.cveoy.top/t/topic/gNU7 著作权归作者所有。请勿转载和采集!