cv::findContours()具体如何使用
时间: 2023-10-24 18:19:24 浏览: 80
cv::findContours()是OpenCV库中的一个函数,用于在二值图像中查找轮廓。它的具体使用方法如下:
1. 准备一个二值图像,可以使用cv::threshold()将图像转换成二值图像。
2. 创建一个空的容器,用于存储轮廓信息。
3. 调用cv::findContours()函数进行轮廓查找,并将查找到的轮廓信息存储到容器中。
以下是一个示例代码:
```c++
// 读入图像
Mat image = imread("image.jpg", IMREAD_GRAYSCALE);
// 二值化
Mat binary;
threshold(image, binary, 128, 255, THRESH_BINARY);
// 查找轮廓
vector<vector<Point>> contours;
findContours(binary, contours, RETR_EXTERNAL, CHAIN_APPROX_NONE);
// 绘制轮廓
Mat result;
cvtColor(binary, result, COLOR_GRAY2BGR);
drawContours(result, contours, -1, Scalar(0, 0, 255), 2);
// 显示结果
imshow("result", result);
waitKey(0);
```
以上代码中,首先使用cv::imread()函数读入一张图像,并使用cv::threshold()函数将图像转换成了二值图像。然后调用cv::findContours()函数查找图像中的轮廓,并将查找到的轮廓信息存储在一个vector容器中。最后使用cv::drawContours()函数将轮廓绘制在图像上,并使用cv::imshow()函数显示结果图像。
阅读全文