cv2.findContours参数及返回值
时间: 2023-11-02 13:40:35 浏览: 121
cv2.findContours() 函数是用于在二值图像中查找轮廓的函数。
函数参数:
- `image`:输入的二值图像,即只有黑白两种颜色的图像。
- `mode`:表示轮廓检索模式,有以下几种模式可选:
- `cv2.RETR_EXTERNAL`:表示只检测外轮廓。
- `cv2.RETR_LIST`:表示检测所有轮廓,并将其保存到列表中。
- `cv2.RETR_CCOMP`:表示检测所有轮廓,并将其组织为两级层次结构。
- `cv2.RETR_TREE`:表示检测所有轮廓,并将其组织为树形结构。
- `method`:表示轮廓近似方法,有以下几种方法可选:
- `cv2.CHAIN_APPROX_NONE`:表示存储所有的轮廓点,不进行压缩。
- `cv2.CHAIN_APPROX_SIMPLE`:表示只保留轮廓的拐点处的坐标值,压缩轮廓,节省内存。
- `contours`:表示检测到的轮廓,每个轮廓都是一个由点组成的 Numpy 数组。
- `hierarchy`:表示轮廓的层级结构,具体内容可以参考 OpenCV 官方文档。
函数返回值:
- 如果使用了 `cv2.RETR_LIST` 模式,则返回检测到的所有轮廓。
- 如果使用了 `cv2.RETR_EXTERNAL` 模式,则只返回最外层轮廓。
- 如果使用了 `cv2.RETR_CCOMP` 或 `cv2.RETR_TREE` 模式,则返回所有轮廓及其层级结构信息。
相关问题
cv2.findContours的参数以及返回值
cv2.findContours() 是 OpenCV 中用于在二值图像中查找轮廓的函数。它的语法如下:
```
contours, hierarchy = cv2.findContours(image, mode, method, offset)
```
其中,参数含义如下:
- `image`:输入二值图像,要求为灰度图像,即只有 0 和 255 两种像素值。
- `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`、`cv2.CHAIN_APPROX_TC89_KCOS`:使用 Tang-Chen 算法进行逼近。
- `offset`:可选参数,表示轮廓坐标点的偏移量。
返回值:
- `contours`:检测到的轮廓,是一个包含所有轮廓的列表,每个轮廓由一组点坐标表示;
- `hierarchy`:轮廓之间的层次关系,是一个包含每个轮廓的父子关系、前后关系等信息的列表。
cv2.findContours参数以及返回值详解
好的,您的问题是关于cv2.findContours函数的参数和返回值的详解。cv2.findContours函数是用于在二值图像中查找轮廓的函数,其主要参数包括输入图像、轮廓检索模式、轮廓近似方法等。其中,输入图像是指要查找轮廓的二值图像,轮廓检索模式用于指定查找轮廓的级别,轮廓近似方法用于指定找到轮廓的精度。
cv2.findContours函数的返回值包括包含所有轮廓的列表以及轮廓和层次结构的元组。列表中的每个元素都是一个包含有关单个轮廓的坐标信息的数组。元组中的第一个元素是轮廓,第二个元素是关于轮廓层次结构的信息。
希望这回答能够帮助您。
阅读全文