cv2.RETR_EXTERAL
时间: 2024-08-13 20:05:43 浏览: 53
`cv2.RETR_EXTERNAL` 是 OpenCV(Computer Vision Library)中用于轮廓查找的一种标志。在 `findContours()` 函数中,这个标志表示应该返回最外层的轮廓,也就是图像中的最完整形状,不包括内部孔洞或重叠部分的轮廓。
具体来说:
- `cv2.RETR_EXTERNAL`:只返回最外层的轮廓,也就是图像中的独立形状,每个轮廓都是封闭的,并且不会包含嵌套的轮廓。
- 与其他选项(如 `cv2.RETR_LIST`、`cv2.RETR_TREE`)一起使用时,有助于获取不同级别的轮廓结构。
当你只需要检测和操作外部轮廓,而不关心轮廓之间的关系时,`cv2.RETR_EXTERNAL` 就是合适的选择。例如,在图像分割、物体检测等场景中,外部轮廓通常是分析的重点。
相关问题
contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) ValueError: too many values to unpack
这个错误通常是由于 OpenCV 的版本问题导致的。在 OpenCV 3 中,`findContours()` 函数返回两个值,分别是轮廓和层次信息。而在 OpenCV 4 中,该函数只返回轮廓信息一个值。
如果你使用的是 OpenCV 4,可以将代码中的下划线 `_` 去掉即可解决该问题。
如果你使用的是 OpenCV 3,可以将代码改为:
```python
_, contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
```
这样就可以正确地获取轮廓信息和层次信息了。
cv2.findContours(masked_image, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
这行代码是使用 OpenCV 库中的 findContours 函数对二值化图像 masked_image 进行轮廓检测,返回图像中所有轮廓的坐标。其中,第一个参数为输入的二值化图像,第二个参数 cv2.RETR_TREE 表示轮廓的检索模式,这种模式会检索并返回所有轮廓的层级结构信息;第三个参数 cv2.CHAIN_APPROX_NONE 表示轮廓的近似方法,这种方法会存储所有轮廓的所有坐标点。最终返回的结果是一个包含所有轮廓坐标的列表。
阅读全文