Python开源工具库使用之运动姿势追踪库mediapipe
import cv2
import mediapipe as mp
# 初始化mediapipe的手部识别模型
mp_hands = mp.solutions.hands
hands = mp_hands.Hands(static_image_mode=True, max_num_hands=2, min_detection_confidence=0.5)
# 读取图片
img = cv2.imread('hands.jpg')
# 转换成RBG格式
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 处理图片
results = hands.process(img_rgb)
# 如果检测到手的话
if results.multi_hand_landmarks:
for hand_landmarks in results.multi_hand_landmarks:
# 绘制21个关键点
for index, landmark in enumerate(hand_landmarks.landmark):
cv2.circle(img, (int(landmark.x * img.shape[1]), int(landmark.y * img.shape[0])), 5, (0, 255, 0), cv2.FILLED)
# 连接手势特征点
cv2.line(img, (int(hand_landmarks.landmark[0].x * img.shape[1]), int(hand_landmarks.landmark[0].y * img.shape[0])),
(int(hand_landmarks.landmark[5].x * img.shape[1]), int(hand_landmarks.landmark[5].y * img.shape[0])), (0, 255, 0), 2)
# 显示图片
cv2.imshow('Hands', img)
cv2.waitKey(0)
# 释放资源
hands.close()
cv2.destroyAllWindows()
这段代码使用了mediapipe库来进行静态图片中的手部姿态追踪,并在原始图片上标记了手的21个关键点以及连接了五指的特征点。这是一个很好的实践,展示了如何将开源库集成到项目中,并进行简单的应用开发。
评论已关闭