cv::findContours()
时间: 2023-08-19 08:09:46 浏览: 86
cv::findContours() 是 OpenCV 库中的一个函数,用于在二值图像中查找轮廓。它的函数原型为:
```cpp
void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset = Point())
```
参数说明:
- `image`:输入的二值图像,通常为灰度图像或者二值化后的图像。
- `contours`:检测到的轮廓结果,以向量形式存储,每个轮廓由一系列的点组成。
- `hierarchy`:可选的输出参数,用于表示轮廓间的关系,如父子关系等。
- `mode`:轮廓检测模式,有以下几种可选:
- `cv::RETR_EXTERNAL`:只检测外部轮廓。
- `cv::RETR_LIST`:检测所有轮廓,不建立层级关系。
- `cv::RETR_TREE`:检测所有轮廓,并建立完整的层级关系。
- `cv::RETR_CCOMP`:检测所有轮廓,并将其组织为两层的层级结构。
- `method`:轮廓近似方法,有以下几种可选:
- `cv::CHAIN_APPROX_NONE`:存储所有的轮廓点。
- `cv::CHAIN_APPROX_SIMPLE`:压缩水平、垂直和对角方向的轮廓,只保留端点。
- `cv::CHAIN_APPROX_TC89_L1` 和 `cv::CHAIN_APPROX_TC89_KCOS`:使用 Teh-Chin 链码的一种逼近算法。
- `offset`:可选的偏置参数,用于指定轮廓点的偏移量。
使用 `findContours()` 函数可以方便地检测并获取图像中的轮廓信息,从而用于后续的形状分析、对象检测等任务。
阅读全文