整体识别(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
其它功能