2017-04-16 105 views
2

我有是一個多邊形的頂點,像這樣的點的列表:OpenCV的:如何創建一個多邊形的形狀的面具?

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邊多邊形的等效解決方案?

回答

3

設法找到問題的解答!

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