2017-04-16 3 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-sidedポリゴンに対応するソリューションはありますか?

答えて

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)); 
関連する問題