cv2.findContours 参数
时间: 2023-11-02 18:36:17 浏览: 78
cv2.findContours 是 OpenCV 中用来查找图像轮廓的函数。它有三个参数:
1. image: 输入图像,必须为 8 位单通道图像,如灰度图像。
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:使用 Tee和 Chinlone 角度度量来进行逼近。
cv2.findContours 函数返回两个值:轮廓列表和层次结构。轮廓列表是一个 Numpy 数组,其中每个元素都是一个包含轮廓所有点坐标的数组。层次结构描述了轮廓之间的关系,其格式为 [next, previous, child, parent]。
相关问题
python cv2.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:使用Teague-Chinliski算法进行轮廓逼近,适用于高精度轮廓。
一般来说,cv2.RETR_EXTERNAL和cv2.CHAIN_APPROX_SIMPLE是最常用的参数配置。例如:
contours, hierarchy = cv2.findContours(threshold_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
其中threshold_image是一个二值图像,contours是找到的轮廓,hierarchy是轮廓之间的关系。
cv2.findcontours返回值
`cv2.findContours()` 函数返回值是三个参数:
1. contours:图像轮廓的列表,其中每个轮廓是一个 Numpy 数组,包含该轮廓上的所有点的坐标。
2. hierarchy:图像中各轮廓的层次关系的信息,表示轮廓的父轮廓、子轮廓和兄弟轮廓的编号。
3. _:是一个可选参数,用于表示轮廓检索模式,默认值为 cv2.RETR_LIST,表示检索所有轮廓,不建立任何层次关系。
阅读全文