cv2.findContours用法
时间: 2023-07-18 20:45:20 浏览: 86
`cv2.findContours`是OpenCV中用于在二值图像中查找轮廓的函数。它的基本语法如下:
```
contours, hierarchy = cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]])
```
其中:
- `image`:输入的二值图像,必须是8位单通道图像(如灰度图像)。
- `mode`:轮廓检索模式,指定轮廓的层次结构关系。常用的模式有`cv2.RETR_EXTERNAL`(只检测外轮廓)、`cv2.RETR_LIST`(检测所有轮廓,并将其存储在列表中)等。
- `method`:轮廓逼近方法,指定轮廓的近似方式。常用的方法有`cv2.CHAIN_APPROX_NONE`(存储所有的轮廓点)、`cv2.CHAIN_APPROX_SIMPLE`(仅存储轮廓的端点)等。
- `contours`:存储轮廓的列表,每个轮廓都是一个包含(x,y)坐标的数组。
- `hierarchy`:轮廓的层次结构关系,用于表示轮廓之间的父子关系和嵌套关系。
- `offset`:轮廓点的可选偏移量,可以用于调整轮廓点的位置。
函数的返回值为轮廓的列表和层次结构关系,可以用于后续的轮廓处理和绘制。例如,可以使用`cv2.drawContours`函数将轮廓绘制在图像上,或者使用`cv2.contourArea`函数计算轮廓面积等。
相关问题
cv2.findContours返回什么
cv2.findContours() 是 OpenCV 中的一个函数,用于在二值图像中查找轮廓信息,它返回三个值,包括轮廓信息、层级信息以及近似轮廓线性信息。
其中,轮廓信息是一个由轮廓点坐标组成的列表,每个轮廓点坐标是一个长度为2的元组,表示该点在图像中的位置。层级信息用于描述轮廓之间的关系,每个轮廓都有一个层级关系,可以表示为一个长度为4的列表 [next, previous, child, parent],其中 next 表示下一个轮廓的索引,previous 表示上一个轮廓的索引,child 表示第一个子轮廓的索引,parent 表示父轮廓的索引。近似轮廓线性信息则是由轮廓点坐标经过抽样后形成的近似多边形轮廓线性信息。
如果您想深入了解 cv2.findContours() 函数及其参数和用法,可以参考 OpenCV 官方文档。
img, contours, hierarchy = cv2.findContours(img2_, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
这是什么意思?
这是一个使用OpenCV库中的findContours函数对一张图像进行轮廓检测的代码行。这个函数会返回三个变量:轮廓、轮廓的层次、和轮廓的逼近方法。轮廓是一个由一系列点构成的闭合线条,可以用来描述图像中的物体形状。轮廓的层次表示轮廓之间的层级关系。逼近方法可以用来控制生成轮廓的精度。
阅读全文