From 1ff80f906cd46b1961b6a9071b91f14f6a5d4ea4 Mon Sep 17 00:00:00 2001 From: MediaPipe Team Date: Fri, 31 Mar 2023 09:02:35 -0700 Subject: [PATCH] draw mouth to shoulder line after connection, to align with python viz code PiperOrigin-RevId: 520935390 --- mediapipe/util/pose_util.cc | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/mediapipe/util/pose_util.cc b/mediapipe/util/pose_util.cc index dd907fcdd..e5d1f2c9f 100644 --- a/mediapipe/util/pose_util.cc +++ b/mediapipe/util/pose_util.cc @@ -89,19 +89,6 @@ void DrawPose(const mediapipe::NormalizedLandmarkList& pose, int target_width, constexpr int draw_line_width = 5; constexpr int draw_circle_radius = 7; - const int lm = static_cast(PoseLandmarkName::kMouthLeft); - const int rm = static_cast(PoseLandmarkName::kMouthRight); - const int ls = static_cast(PoseLandmarkName::kLeftShoulder); - const int rs = static_cast(PoseLandmarkName::kRightShoulder); - if (visible_landmarks.find(lm) != visible_landmarks.end() && - visible_landmarks.find(rm) != visible_landmarks.end() && - visible_landmarks.find(ls) != visible_landmarks.end() && - visible_landmarks.find(rs) != visible_landmarks.end()) { - cv::line(*image, (visible_landmarks[lm] + visible_landmarks[rm]) * 0.5f, - (visible_landmarks[ls] + visible_landmarks[rs]) * 0.5f, - cv::Scalar(255, 255, 255), draw_line_width); - } - for (int j = 0; j < 35; ++j) { if (visible_landmarks.find(kJointConnection[j][0]) != visible_landmarks.end() && @@ -115,6 +102,19 @@ void DrawPose(const mediapipe::NormalizedLandmarkList& pose, int target_width, } } + const int lm = static_cast(PoseLandmarkName::kMouthLeft); + const int rm = static_cast(PoseLandmarkName::kMouthRight); + const int ls = static_cast(PoseLandmarkName::kLeftShoulder); + const int rs = static_cast(PoseLandmarkName::kRightShoulder); + if (visible_landmarks.find(lm) != visible_landmarks.end() && + visible_landmarks.find(rm) != visible_landmarks.end() && + visible_landmarks.find(ls) != visible_landmarks.end() && + visible_landmarks.find(rs) != visible_landmarks.end()) { + cv::line(*image, (visible_landmarks[lm] + visible_landmarks[rm]) * 0.5f, + (visible_landmarks[ls] + visible_landmarks[rs]) * 0.5f, + cv::Scalar(255, 255, 255), draw_line_width); + } + for (const auto& landmark : visible_landmarks) { cv::circle(*image, landmark.second, draw_circle_radius, cv::Scalar(kJointColorMap[landmark.first][0],