findContours返回值
时间: 2024-07-31 16:01:53 浏览: 153
OpenCv中cvFindContours在程序中使用说明.docx
OpenCV的`findContours()`函数主要用于在给定的图像中寻找轮廓。这个函数有两个返回值:轮廓集和轮廓存储器级别的指针。以下是这两个值的详细解释:
1. **轮廓集(vector<Mat> contours)**:这是最重要的返回值,它是一个`std::vector<cv::Mat>`类型的容器,其中包含了所有找到的轮廓信息。每个轮廓都作为一个矩阵存储,矩阵的第一行包含的是轮廓的顶点坐标,通常是按照顺序排列的,第二行则表示对应顶点的近似圆环大小(对于多边形而言,如果没有指定这个选项,通常为空)。
2. **轮廓存储器级别指针(std::vector<std::vector<Point>> hierarchy)**:这个额外的返回值通常不是必需的,但在某些场景下可能会有用。它是另一个嵌套的`std::vector<cv::Point>`,记录了轮廓之间的相对层次关系,包括“内部轮廓”、“外部轮廓”以及可能存在的“洞”。每一级的`cv::Point`包含两个元素:水平距离和垂直距离,可以用来判断轮廓之间的连接关系。
如果你只是想获取轮廓本身,那么轮廓集`contours`就是你需要的主要数据;而如果想要了解轮廓间的关联结构,则需要同时分析`hierarchy`。
阅读全文