目录
1.概述
1.1轮廓发现概念
1.2相关API
2.API参数解释
?2.1.轮廓发现
2.2绘制轮廓
2.3 实现步骤
?3.实验示例
1.概述
1.1轮廓发现概念
轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现的结果
1.2相关API
findContours()发现轮廓
drawContours()绘制轮廓
2.API参数解释
?2.1.轮廓发现
2.2绘制轮廓
2.3 实现步骤
-
输入图像转为灰度图像cvtColor -
使用Canny进行边缘提取,得到二值图 -
使用findContours寻找轮廓 -
使用drawContours绘制轮廓?
?3.实验示例
void MyApi::find_img_contour(Mat& image)
{
RNG rng;
Mat dst;
vector<vector<Point>>contours;
vector<Vec4i>hierarchy;
Canny(image, dst, 100, 200, 3, false);
findContours(dst, contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0));
Mat drawImage = Mat::zeros(dst.size(), CV_8UC3);
for (size_t i = 0; i < contours.size(); i++)
{
Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
drawContours(drawImage, contours, i, color, 2, LINE_8, hierarchy, 0, Point(0, 0));
}
imshow("轮廓结果", drawImage);
}
左边是输入,右边是轮廓的结果?
|