findContours返回值
时间: 2024-07-31 22:01:53 浏览: 190
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`。
相关问题
cv2.findcontours返回值
`cv2.findContours()` 函数返回值是三个参数:
1. contours:图像轮廓的列表,其中每个轮廓是一个 Numpy 数组,包含该轮廓上的所有点的坐标。
2. hierarchy:图像中各轮廓的层次关系的信息,表示轮廓的父轮廓、子轮廓和兄弟轮廓的编号。
3. _:是一个可选参数,用于表示轮廓检索模式,默认值为 cv2.RETR_LIST,表示检索所有轮廓,不建立任何层次关系。
cv2.findContours返回值
cv2.findContours函数返回三个值:contours、hierarchy、image。其中,contours是一个列表,包含了所有检测到的轮廓,每个轮廓是一个由点组成的numpy数组;hierarchy是每个轮廓的层次结构,包含了每个轮廓的父子关系信息;image是输入的二值化图像。如果没有找到任何轮廓,那么contours将会是一个空列表,hierarchy将会是一个空数组,image将会是输入的二值化图像。
阅读全文