opencv findcounter参数
时间: 2023-08-02 07:07:57 浏览: 230
`findContours`是OpenCV中的一个函数,用于在二进制图像中查找连通区域(轮廓),并返回轮廓的坐标信息。它的函数原型如下:
```
void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset = Point())
```
其中,参数含义如下:
- `image`:输入的二值图像,必须为8位单通道图像。
- `contours`:输出的轮廓信息,为一个向量数组,每个向量存储一个轮廓的所有点的坐标。
- `hierarchy`:可选的输出轮廓的层次结构信息,可以为`noArray()`,也可以为一个二维整型向量。每个轮廓有四个相关信息:下一个轮廓、上一个轮廓、子轮廓、父轮廓,如果没有对应的信息,就用-1表示。
- `mode`:轮廓检索模式,有四种可选:`RetrievalMode::EXTERNAL`(只检索外部轮廓)、`RetrievalMode::LIST`(检索所有轮廓,不建立轮廓间的关系)、`RetrievalMode::CCOMP`(检索所有轮廓,但轮廓间建立两层嵌套关系)、`RetrievalMode::TREE`(检索所有轮廓,轮廓间建立完整的嵌套关系)。
- `method`:轮廓逼近方法,有三种可选:`ContourApproximationMode::NONE`(不逼近,存储所有的轮廓点)、`ContourApproximationMode::SIMPLE`(逼近为简单的多边形,例如凸包)、`ContourApproximationMode::TC89_L1`或`ContourApproximationMode::TC89_KCOS`(逼近为3次样条曲线)。
- `offset`:可选的轮廓偏移量,用于将轮廓坐标转换为图像坐标。
需要注意的是,`findContours`函数会改变输入图像,如果不想改变原图像,可以先复制一份再进行处理。另外,对于某些情况下可能存在的内存泄漏问题,可以通过手动释放`contours`和`hierarchy`来避免。
阅读全文