findContours的函数原型
时间: 2024-08-16 21:03:37 浏览: 36
`findContours()`是OpenCV库中的一个功能函数,它主要用于在图像中查找轮廓(Contour)。在计算机视觉和图像分析中,轮廓可以提供关于物体边界的重要信息。`findContours`函数的基本原型在C++中通常像这样:
```cpp
std::vector<std::vector<cv::Point>>& findContours(const cv::Mat& image, std::vector<std::vector<cv::Point>>& contours, int mode = RETR_TREE, int method = CHAIN_APPROX_SIMPLE, const std::vector<cv::Point>& hierarchy = {});
```
函数参数解释如下:
- `image`: 输入的灰度图像,用于寻找轮廓。
- `contours`: 要返回的结果变量,存储找到的所有轮廓,每个轮廓是一个点集。
- `mode` (可选): 行政划分模式,如`RETR_EXTERNAL`(只返回最外层轮廓)、`RETR_LIST`(返回所有轮廓),默认是`RETR_TREE`(返回一个分层次的结构)。
- `method` (可选): 形状近似方法,如`CHAIN_APPROX_NONE`(不压缩轮廓)或`CHAIN_APPROX_SIMPLE`(简化的形状表示法,节省内存空间),默认是`CHAIN_APPROX_SIMPLE`。
- `hierarchy` (可选): 如果非空,会包含轮廓之间的父子关系,这是一个`cv::Vec4i`类型的向量。
`findContours()`函数会遍历图像并识别出连续的边缘,然后根据指定的模式和方法填充到`contours`中。
阅读全文