cv::findContours使用例子
时间: 2023-04-04 14:03:29 浏览: 174
cv::findContours是OpenCV中的一个函数,用于在二值图像中查找轮廓。以下是一个使用cv::findContours函数的例子:
```c++
cv::Mat binaryImage; // 二值图像
std::vector<std::vector<cv::Point>> contours; // 存储轮廓的向量
std::vector<cv::Vec4i> hierarchy; // 存储轮廓的层次结构的向量
// 查找轮廓
cv::findContours(binaryImage, contours, hierarchy, cv::RETR_TREE, cv::CHAIN_APPROX_SIMPLE);
// 绘制轮廓
cv::Mat contourImage(binaryImage.size(), CV_8UC3, cv::Scalar(0, 0, 0)); // 创建一个黑色图像
for (int i = 0; i < contours.size(); i++) {
cv::drawContours(contourImage, contours, i, cv::Scalar(0, 0, 255), 2, 8, hierarchy, 0);
}
// 显示结果
cv::imshow("Contours", contourImage);
cv::waitKey(0);
```
在这个例子中,我们首先定义了一个二值图像和两个向量,然后调用cv::findContours函数查找轮廓。函数的第一个参数是二值图像,第二个参数是存储轮廓的向量,第三个参数是存储轮廓的层次结构的向量。函数的第四个和第五个参数分别指定轮廓的检索模式和近似方法。在这个例子中,我们使用了cv::RETR_TREE和cv::CHAIN_APPROX_SIMPLE两个参数。最后,我们使用cv::drawContours函数绘制轮廓,并显示结果。
希望这个例子能够帮助你理解cv::findContours函数的使用。
阅读全文