不废话了,直接上代码
cv::Mat outerMask = cv::Mat::zeros(image.size(), CV_8UC1);
cv::Mat innerMask = cv::Mat::ones(image.size(), CV_8UC1);
cv::fillConvexPoly(outerMask, outerPoints, Scalar(255));//用外圈点生成外圈区域
cv::fillConvexPoly(innerMask, innerPoints, Scalar(0));//内圈区域.
cv::Mat mask;
cv::bitwise_and(outerMask,innerMask, mask);//与运算提取环形区域
cv::Mat cropimage1, cropimage2;
cv::bitwise_and(image, image, cropimage2, mask);//在环形区域内提取图像
原图与点集
提取效果