MediaPipe人体关键点检测复现和未解决问题

本文档详细介绍了如何使用MediaPipe进行人体、骨架和手部关键点检测,并提供了环境配置步骤、代码实现及摄像头实时检测。在实践中遇到一个问题,即设置的关键点颜色在部分情况下显示为白色,尽管部分颜色可以正常显示,但这一问题尚未解决。
摘要由CSDN通过智能技术生成

0. 环境配置

参考 【0】MediaPipe安装
使用Anaconda进行安装
首先创建一个名为mediapipe的文件夹(?[此时只是一个名字

conda create -n mediapipe

然后激活?进入?该环境(用于下一步正式配置

activate mediapipe

接下来下载mediapipe源

pip install mediapipe

进度条完成即可🆗
(忘截图了抱一个
在这里插入图片描述
like this
在这里插入图片描述
用PyCharm打开项目后解释器配置如下:
在这里插入图片描述

1. 基本代码

参考python代码

(1)全身检测(图片)
import cv2
import mediapipe as mp
 
#mp.solutions.drawing_utils用于绘制
mp_drawing = mp.solutions.drawing_utils
 
#参数:1、颜色,2、线条粗细,3、点的半径
DrawingSpec_point = mp_drawing.DrawingSpec((0, 255, 0), 2, 2)
DrawingSpec_line = mp_drawing.DrawingSpec((0, 0, 255), 2, 2)
 
#mp.solutions.holistic是一个类别,是人的整体
mp_holistic = mp.solutions.holistic
 
#参数:1、是否检测静态图片,2、姿态模型的复杂度,3、结果看起来平滑(用于video有效),4、检测阈值,5、跟踪阈值
holistic = mp_holistic.Holistic(static_image_mode=True)
 
file = 'input.jpg'
image = cv2.imread(file)
image_hight, image_width, _ = image.shape
image1 = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
 
#处理RGB图像
results = holistic.process(image1)
 
#某一个点的坐标
if results.pose_landmarks:
  print(
      f'Nose coordinates: ('
      f'{
     results.pose_landmarks.landmark[mp_holistic.PoseLandmark.NOSE].x * image_width}, '
      f'{
     results.pose_landmarks.landmark[mp_holistic.PoseLandmark.NOSE].y * image_hight})'
  )
 
'''
mp_holistic.PoseLandmark类中共33个人体骨骼点
mp_holistic.HandLandmark类中共21个手部关键点
脸部有468个关键点
'''
 
#绘制
mp_drawing.draw_landmarks(
    image, results.face_landmarks, mp_holistic.FACE_CONNECTIONS, DrawingSpec_point, DrawingSpec_line)
mp_drawing.draw_landmarks(
    image, results.left_hand_landmarks, mp_holistic.HAND_CONNECTIONS, DrawingSpec_point, DrawingSpec_line)
mp_drawing.draw_landmarks(
    image, results.right_hand_landmarks, mp_holistic.HAND_CONNECTIONS, DrawingSpec_point, DrawingSpec_line)
mp_drawing.draw_landmarks(
    image, results.pose_landmarks, mp_holistic.POSE_CONNECTIONS, DrawingSpec_point, DrawingSpec_line)
 
#cv2.imshow('image',image)
#cv2.waitKey(0)
cv2.imwrite('image-holistic.jpg', image)
holistic.close()
(2)全身检测(视频)
import cv2
import mediapipe as mp
 
#mp.solutions.drawing_utils用于绘制
mp_drawing = mp.solutions.drawing_utils
 
#参数:1、颜色,2、线条粗细,3、点的半径
DrawingSpec_point = mp_drawing.DrawingSpec((0, 255, 0), 1 , 1)
DrawingSpec_line = mp_drawing.DrawingSpec((0, 0, 255), 1, 1)
 
#mp.solutions.holistic是一个类别,是人的整体
mp_holistic = mp.solutions.holistic
 
#参数:1、是否检测静态图片,2、姿态模型的复杂度,3、结果看起来平滑(用于video有效),4、检测阈值,5、跟踪阈值
holistic = mp_holistic.Holistic(min_detection_confidence=0.5, min_tracking_confidence=0.5)
 
cap = cv2.VideoCapture('input.mp4')
while cap.isOpened():
    success, image = cap.read()
    if not success:
        print("Ignoring empty camera frame.")
        continue
    image1 = cv2.cvtColor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值