findContours ()参数
时间: 2023-10-14 09:13:51 浏览: 57
`findContours()` 是 OpenCV 库中用于在二值图像中查找轮廓的函数。它的参数包括:
- 输入图像:一般是二值图像,即只有黑白两种颜色。
- 轮廓检索模式:指定轮廓的检索模式,有 RETR_EXTERNAL(只返回最外层轮廓)、RETR_LIST(返回所有轮廓,不建立轮廓之间的父子关系)等。
- 轮廓逼近方法:指定轮廓的逼近方法,有 CHAIN_APPROX_NONE(存储所有的轮廓点)、CHAIN_APPROX_SIMPLE(仅存储轮廓的端点)等。
- 轮廓输出:存储轮廓信息的容器。
- 可选参数:用于指定轮廓的偏移量等。
示例代码:
```
import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
```
`contours` 存储了所有的轮廓信息,`hierarchy` 存储了轮廓之间的关系。
相关问题
findContours参数
cv2.findcontours参数包括:
1. image:输入图像,必须为二值图像,即黑白图像。
2. mode:轮廓检索模式,有四种模式可选:
- cv2.RETR_EXTERNAL:只检索最外层轮廓。
- cv2.RETR_LIST:检索所有轮廓,不建立轮廓间的父子关系。
- cv2.RETR_CCOMP:检索所有轮廓,建立两层轮廓间的父子关系。
- cv2.RETR_TREE:检索所有轮廓,建立完整的轮廓层级结构。
3. method:轮廓逼近方法,有三种方法可选:
- cv2.CHAIN_APPROX_NONE:存储所有的轮廓点。
- cv2.CHAIN_APPROX_SIMPLE:仅存储轮廓的端点。
- cv2.CHAIN_APPROX_TC89_L1、cv2.CHAIN_APPROX_TC89_KCOS:使用Teh-Chin链逼近算法。
4. contours:检测到的轮廓,每个轮廓由一组点组成。
5. hierarchy:轮廓的层级结构,每个轮廓对应一个四元组(hierarchy[i][], hierarchy[i][1], hierarchy[i][2], hierarchy[i][3]),其中hierarchy[i][]、hierarchy[i][1]、hierarchy[i][2]、hierarchy[i][3]分别表示当前轮廓的后一个轮廓、前一个轮廓、第一个子轮廓和父轮廓的索引。如果当前轮廓没有对应的后一个、前一个、子轮廓或父轮廓,则相应的索引值为-1。
findContours 参数
findContours是OpenCV中的一个函数,用于在二进制图像中查找轮廓,该函数的参数如下:
1. image:输入图像,需要为二进制图像,即只包含0和255两个像素值。
2. contours:输出参数,存储轮廓信息,为一个向量(vector)类型的变量。
3. hierarchy:输出参数,存储轮廓的层级信息,为一个向量(vector)类型的变量。
4. mode:表示轮廓检索模式。有四种模式可选:
- cv2.RETR_EXTERNAL:表示只检测外部轮廓;
- cv2.RETR_LIST:检测所有轮廓,并将其保存到列表中;
- cv2.RETR_CCOMP:检测所有轮廓,并将其组织为两层结构(上层为物体的外边界,下层为物体内部空洞的边界);
- cv2.RETR_TREE:检测所有轮廓,并重构轮廓之间的嵌套层次。
5. method:表示轮廓的逼近方法。有三种方法可选:
- cv2.CHAIN_APPROX_NONE:存储所有的轮廓点,对每个轮廓点都进行存储;
- cv2.CHAIN_APPROX_SIMPLE:压缩水平、垂直和对角线方向的元素,并仅保留端点,例如一个矩形轮廓只需存储4个点信息;
- cv2.CHAIN_APPROX_TC89_L1和cv2.CHAIN_APPROX_TC89_KCOS:使用Teh-Chin链逼近算法中的一种,可以选择更优化的逼近方法。
6. offset:可选参数,表示轮廓点坐标的偏移量。
阅读全文