update face drawing function.
PiperOrigin-RevId: 542083042
This commit is contained in:
parent
ef6aeb8828
commit
0b6ff84e3c
|
@ -125,6 +125,12 @@ const cv::Scalar kPeachColor = cv::Scalar{255, 229, 180};
|
||||||
const cv::Scalar kWhiteColor = cv::Scalar(224, 224, 224);
|
const cv::Scalar kWhiteColor = cv::Scalar(224, 224, 224);
|
||||||
const cv::Scalar kCyanColor = cv::Scalar{48, 255, 192};
|
const cv::Scalar kCyanColor = cv::Scalar{48, 255, 192};
|
||||||
const cv::Scalar kMagentaColor = cv::Scalar{255, 48, 192};
|
const cv::Scalar kMagentaColor = cv::Scalar{255, 48, 192};
|
||||||
|
|
||||||
|
void ReverseRGB(cv::Scalar* color) {
|
||||||
|
int tmp = color->val[0];
|
||||||
|
color->val[0] = color->val[2];
|
||||||
|
color->val[2] = tmp;
|
||||||
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace mediapipe {
|
namespace mediapipe {
|
||||||
|
@ -186,8 +192,8 @@ void DrawPose(const mediapipe::NormalizedLandmarkList& pose, bool flip_y,
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawFace(const mediapipe::NormalizedLandmarkList& face, bool flip_y,
|
void DrawFace(const mediapipe::NormalizedLandmarkList& face, bool flip_y,
|
||||||
bool draw_nose, bool color_style, int draw_line_width,
|
bool draw_nose, bool color_style, bool reverse_color,
|
||||||
cv::Mat* image) {
|
int draw_line_width, cv::Mat* image) {
|
||||||
const int target_width = image->cols;
|
const int target_width = image->cols;
|
||||||
const int target_height = image->rows;
|
const int target_height = image->rows;
|
||||||
std::vector<cv::Point> landmarks;
|
std::vector<cv::Point> landmarks;
|
||||||
|
@ -217,6 +223,18 @@ void DrawFace(const mediapipe::NormalizedLandmarkList& face, bool flip_y,
|
||||||
kNoseColor = kYellowColor;
|
kNoseColor = kYellowColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (reverse_color) {
|
||||||
|
ReverseRGB(&kFaceOvalColor);
|
||||||
|
ReverseRGB(&kLipsColor);
|
||||||
|
ReverseRGB(&kLeftEyeColor);
|
||||||
|
ReverseRGB(&kLeftEyebrowColor);
|
||||||
|
ReverseRGB(&kLeftEyeIrisColor);
|
||||||
|
ReverseRGB(&kRightEyeColor);
|
||||||
|
ReverseRGB(&kRightEyebrowColor);
|
||||||
|
ReverseRGB(&kRightEyeIrisColor);
|
||||||
|
ReverseRGB(&kNoseColor);
|
||||||
|
}
|
||||||
|
|
||||||
for (int j = 0; j < 36; ++j) {
|
for (int j = 0; j < 36; ++j) {
|
||||||
cv::line(*image, landmarks[kFaceMeshFaceOval[j][0]],
|
cv::line(*image, landmarks[kFaceMeshFaceOval[j][0]],
|
||||||
landmarks[kFaceMeshFaceOval[j][1]], kFaceOvalColor,
|
landmarks[kFaceMeshFaceOval[j][1]], kFaceOvalColor,
|
||||||
|
|
|
@ -24,8 +24,8 @@ void DrawPose(const mediapipe::NormalizedLandmarkList& pose, bool flip_y,
|
||||||
cv::Mat* image);
|
cv::Mat* image);
|
||||||
|
|
||||||
void DrawFace(const mediapipe::NormalizedLandmarkList& face, bool flip_y,
|
void DrawFace(const mediapipe::NormalizedLandmarkList& face, bool flip_y,
|
||||||
bool draw_nose, bool color_style, int draw_line_width,
|
bool draw_nose, bool color_style, bool reverse_color,
|
||||||
cv::Mat* image);
|
int draw_line_width, cv::Mat* image);
|
||||||
|
|
||||||
} // namespace mediapipe
|
} // namespace mediapipe
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user