MCPcopy Create free account
hub / github.com/KAlO2/PerfectShow / calcuateBlusherRegionInfo

Function calcuateBlusherRegionInfo

jni/venus/region_operation.cpp:849–890  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

847}
848
849RoiInfo calcuateBlusherRegionInfo(const std::vector<Point2f>& points, bool right/* = true*/)
850{
851 Point2f origion;
852 Mat mask;
853 if(right)
854 {
855 origion = Point2f(points[1].x, points[1].y);
856
857 // blush_index_l = {1, 2, 3, 62, (34+62)/2, 62, (62+41)/2 };
858 Point polygon_r[] =
859 {
860 Point(cvRound(points[1].x), cvRound(points[1].y)),
861 Point(cvRound(points[2].x), cvRound(points[2].y)),
862 Point(cvRound(points[3].x), cvRound(points[3].y)),
863 Point(cvRound((points[3].x + points[64].x)/2), cvRound((points[3].y + points[64].y)/2)),
864 Point(cvRound(points[62].x), cvRound(points[62].y)),
865 Point(cvRound((points[62].x + points[41].x)/2), cvRound((points[62].y + points[41].y)/2)),
866 };
867
868 cv::fillConvexPoly(mask, polygon_r, NELEM(polygon_r), Scalar(255,255,255));
869
870 }
871 else
872 {
873 origion = Point2f(points[1].x, points[1].y);
874
875 Point polygon_l[] =
876 {
877 Point(cvRound(points[11].x), cvRound(points[11].y)),
878 Point(cvRound(points[10].x), cvRound(points[10].y)),
879 Point(cvRound(points[9].x), cvRound(points[9].y)),
880 Point(cvRound((points[9].x) + points[68].x)/2, cvRound((points[9].y + points[68].y)/2)),
881 Point(cvRound(points[58].x), cvRound(points[58].y)),
882 Point(cvRound((points[58].x + points[51].x)/2), cvRound((points[58].y + points[51].y)/2)),
883 };
884
885 cv::fillConvexPoly(mask, polygon_l, NELEM(polygon_l), Scalar(255, 255, 255));
886 }
887
888 Point2f pivot = origion;
889 return RoiInfo(origion, pivot, mask);
890}
891
892static void subdivLine(std::vector<Point>& contour, const Point2f& p0, const Point2f& p1, const Point2f& p2, const Point2f& p3)
893{

Callers

nothing calls this directly

Calls 1

RoiInfoClass · 0.70

Tested by

no test coverage detected