contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)有什么用
时间: 2024-06-06 17:01:11 浏览: 15
这行代码的作用是在二值图像(如边缘检测后的图像)中寻找轮廓(contours)。
其中的参数含义如下:
- edges:输入的二值图像,一般是经过边缘检测后得到的图像;
- cv2.RETR_EXTERNAL:表示只检测最外层轮廓;
- cv2.CHAIN_APPROX_NONE:表示存储所有的轮廓点,相邻的两个点的像素位置差不超过1。
函数的返回值包括两个部分:
- contours:包含所有检测到的轮廓信息,每个轮廓是一个numpy数组,包含了轮廓上所有点的坐标;
- hierarchy:包含轮廓之间的关系信息,用于构建轮廓的层次结构,一般不需要用到。
相关问题
contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) ValueError: too many values to unpack怎么解决
这个错误的原因是`cv2.findContours()`函数返回的值的数量与你尝试解包的变量数量不匹配。这是因为OpenCV版本不同,函数返回值的格式有所不同。
在OpenCV 3版本及以下,`cv2.findContours()`函数只返回轮廓列表,不返回层次结构。因此,你可以将函数调用修改为以下形式:
```python
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
```
这样,只将轮廓列表赋值给`contours`变量,而忽略了层次结构的返回值。
在OpenCV 4版本及以上,`cv2.findContours()`函数返回两个值:轮廓列表和层次结构列表。因此,你可以将函数调用修改为以下形式:
```python
_, contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
```
这样,只将轮廓列表赋值给`contours`变量,而忽略了层次结构的返回值。
根据你使用的OpenCV版本,选择相应的修改方式来解决这个错误。
详细解释contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
`cv2.findContours()` 是 OpenCV 中的一个函数,用于在二值图像中查找轮廓。它返回两个值:轮廓列表 `contours` 和层级结构 `hierarchy`。
其中,`edges` 是一个二值图像(一般经过阈值处理得到),`cv2.RETR_EXTERNAL` 表示只检测外轮廓,`cv2.CHAIN_APPROX_SIMPLE` 表示轮廓的存储方式,只保留轮廓的端点。
`contours` 是一个 Python 列表,其中每个元素都是一个轮廓,每个轮廓都是一组表示物体边界的点的数组。每个点都是二维元组 `(x,y)`,表示轮廓上的坐标。
`hierarchy` 是一个包含每个轮廓的层级结构的数组。层级结构描述了轮廓之间的关系,例如哪些轮廓包含哪些轮廓,哪些轮廓是同级的等等。层级结构是一个四元组 `(next, prev, child, parent)`,其中 `next` 是下一个轮廓,`prev` 是前一个轮廓,`child` 是第一个子轮廓,`parent` 是父轮廓。如果没有子轮廓、前一个轮廓或者父轮廓,则对应的值为 -1。
通过使用 `cv2.findContours()` 函数,我们可以方便地获取图像中的轮廓及其层级结构,并对其进行分析和处理。
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)