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