OpenCV4通过findContours找到指定轮廓后用drawContours填充制作掩膜

// 提取轮廓
vector<vector<Point> > baseContours, baseContours_temp;
vector<Vec4i> baseHierarchy;
cv::findContours(imgCny, baseContours_temp, baseHierarchy, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
 
//根据面积阈值筛选一下轮廓
for (int i = 0; i < baseContours_temp.size(); i++)
{
	cout << "轮廓面积为:" << contourArea(baseContours_temp[i]) << endl;
	if (contourArea(baseContours_temp[i]) > 30000)
		baseContours.push_back(baseContours_temp[i]);
}
 
 
//初始化Mat 掩膜容器
Mat mask = Mat::zeros(imgSmall.size(), CV_8UC1);
 
// 填充轮廓
drawContours(mask, baseContours, 0,Scalar(255,225,225),-1);//FILLED 与-1等同
 
imwrite("E:/Users/raychiu/Desktop/smallHandle.jpg", mask);

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_51233386/article/details/132676638
今日推荐