cv2.findContours的返回值
时间: 2024-02-22 14:53:19 浏览: 209
cv2.findContours函数是OpenCV中用于查找图像中轮廓的函数。它的返回值包括两个部分:轮廓列表和层次结构。
1. 轮廓列表:返回一个包含所有轮廓的列表。每个轮廓都是一个由点组成的数组,表示图像中的一个闭合曲线。可以通过遍历这个列表来访问每个轮廓。
2. 层次结构:返回一个包含轮廓之间关系的层次结构。层次结构是一个包含四个元素的数组,每个元素对应一个轮廓。这四个元素分别是下一个轮廓、前一个轮廓、第一个子轮廓和父轮廓。通过这些关系可以确定轮廓之间的层次关系。
相关问题
cv2.findContours输入参数与返回值
cv2.findContours是OpenCV中用于查找图像轮廓的函数。它的输入参数是二值化图像,输出是轮廓信息和层次结构。
具体来说,cv2.findContours函数的输入参数包括:
- image:输入的二值化图像,要求为8位单通道图像。
- mode:轮廓检索模式,有四种可选模式,分别为cv2.RETR_EXTERNAL、cv2.RETR_LIST、cv2.RETR_CCOMP和cv2.RETR_TREE。
- method:轮廓逼近方法,有三种可选方法,分别为cv2.CHAIN_APPROX_NONE、cv2.CHAIN_APPROX_SIMPLE和cv2.CHAIN_APPROX_TC89_L1。
- contours:检测到的轮廓信息,是一个Python列表,每个元素都是一个轮廓,每个轮廓由若干个点组成。
- hierarchy:轮廓的层次结构信息,也是一个Python列表,每个元素都是一个四元组(hierarchy[i], hierarchy[i][1], hierarchy[i], hierarchy[i]),其中hierarchy[i]、hierarchy[i]、hierarchy[i]和hierarchy[i]分别表示第i个轮廓的后一个轮廓、前一个轮廓、子轮廓和父轮廓的索引。
下面是一个示例代码:
```
import cv2
# 读入图像并转换为灰度图像
img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化图像
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv2.drawContours(img, contours, -1, (0, 0, 255), 2)
# 显示结果
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
cv2.findcontours返回值
`cv2.findContours()` 函数返回值是三个参数:
1. contours:图像轮廓的列表,其中每个轮廓是一个 Numpy 数组,包含该轮廓上的所有点的坐标。
2. hierarchy:图像中各轮廓的层次关系的信息,表示轮廓的父轮廓、子轮廓和兄弟轮廓的编号。
3. _:是一个可选参数,用于表示轮廓检索模式,默认值为 cv2.RETR_LIST,表示检索所有轮廓,不建立任何层次关系。
阅读全文