findContours
时间: 2023-10-15 17:31:14 浏览: 44
`findContours` 是一个在图像处理中常用的函数,用于寻找图像中的轮廓。它可以帮助我们检测出图像中的边界,从而进行形状分析、对象检测和图像识别等任务。
在使用 `findContours` 函数之前,需要首先对图像进行二值化处理,将图像转换为黑白两色。然后,通过调用 `findContours` 函数,可以检测出图像中的轮廓信息,并将其存储为一个轮廓列表。
这个函数的语法如下:
```cpp
void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset = Point())
```
- `image`:输入图像,通常是一个二值化的图像。
- `contours`:输出参数,存储检测到的轮廓列表。
- `hierarchy`:输出参数,存储轮廓的层级结构。
- `mode`:轮廓检索模式,可以是 `RETR_EXTERNAL`(只检测外部轮廓)、`RETR_LIST`(检测所有轮廓,不建立层级关系)等。
- `method`:轮廓逼近方法,可以是 `CHAIN_APPROX_NONE`(存储所有边界点)、`CHAIN_APPROX_SIMPLE`(压缩水平、垂直和对角线方向上的冗余点)等。
- `offset`:可选参数,可用于指定轮廓坐标的偏移量。
调用 `findContours` 函数后,会将检测到的轮廓存储在 `contours` 中,并且可通过 `drawContours` 函数将轮廓绘制到原始图像上。