Python 媒体识别包 Mediapipe - 整体(Holistic)

整体识别(Holistic)

import typing
import cv2
import mediapipe as mp
from mediapipe.python.solutions.drawing_utils import DrawingSpec

mp_drawing = mp.solutions.drawing_utils
mp_drawing_styles = mp.solutions.drawing_styles
mp_holistic = mp.solutions.holistic

def hiddenPoseFace(landmarks: typing.NamedTuple) -> typing.Any:
    for idx in range(11):
        landmarks.pose_landmarks.landmark[idx].visibility = 0

with mp_holistic.Holistic(
    min_detection_confidence=0.5,
    min_tracking_confidence=0.5
) as holistic:
    cap = cv2.VideoCapture(0)
    while True:
        success, img = cap.read()
        if success:
            img = cv2.flip(img, 1)
            results = holistic.process(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

            hiddenPoseFace(results)

            mp_drawing.draw_landmarks(
                img, results.pose_landmarks, mp_holistic.POSE_CONNECTIONS,
                landmark_drawing_spec=DrawingSpec((0, 255, 0), 4, 4)
            )

            mp_drawing.draw_landmarks(
                img, results.face_landmarks, mp_holistic.FACEMESH_CONTOURS,
                landmark_drawing_spec=None,
                connection_drawing_spec=mp_drawing_styles.get_default_face_mesh_contours_style()
            )
            mp_drawing.draw_landmarks(
                img, results.face_landmarks, mp_holistic.FACEMESH_TESSELATION,
                landmark_drawing_spec=None,
                connection_drawing_spec=mp_drawing_styles.get_default_face_mesh_tesselation_style()
            )

            cv2.imshow('综合识别', img)
            if cv2.waitKey(1) > 0:
                break

其它功能