OpenCV:如何创建多边形形状的蒙版?

Abs*_*Abs 9 c++ opencv mask

我有一个点列表,它是多边形的顶点,如下所示:

std::vector<cv::Point2d> polygonPoints;
Run Code Online (Sandbox Code Playgroud)

我需要goodFeaturesToTrack在openCV中为该函数创建一个掩码.对于矩形,用1s 填充所需区域的最简单方法是这样的:

cv::Mat mask = cv::Mat::zeros(img.rows, img.cols, CV_8U);
mask(boundingbox) = 1;
Run Code Online (Sandbox Code Playgroud)

如何使用具有10个以上边的多边形?对于n边多边形,是否存在等效解?

Abs*_*Abs 10

管理找到一个有效的答案!

cv::Mat mask = cv::Mat::zeros(img->rows, img->cols, CV_8U);
cv::Point pts[5] = {
    cv::Point(1, 6),
    cv::Point(2, 7),
    cv::Point(3, 8),
    cv::Point(4, 9),
    cv::Point(5, 10)
};
cv::fillConvexPoly( mask, pts, 5, cv::Scalar(1) );
Run Code Online (Sandbox Code Playgroud)

  • 查找“cv::fillConvexPoly”后,我找到了“cv::fillPoly”。看来OpenCV还可以处理更复杂的点集。 (2认同)