OpenCV:如何创建多边形的遮罩?

OpenCV: How to create a mask in the shape of a polygon?

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

std::vector<cv::Point2d> polygonPoints;

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

cv::Mat mask = cv::Mat::zeros(img.rows, img.cols, CV_8U);
mask(boundingbox) = 1;

如何处理具有 10 条以上边的多边形?有n边形的等效解吗?

设法找到有效的答案!

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) );