opencv 的findcontours参数的含义
时间: 2024-06-01 20:12:39 浏览: 95
OpenCV的findContours函数是用于找到图像中的轮廓的函数。它的参数如下:
1. image:输入二值图像,通常为灰度图像或二值化后的图像。
2. contours:输出的轮廓,以向量的形式保存。
3. hierarchy:输出的轮廓的层次结构,以向量的形式保存。
4. mode:轮廓的查找模式,可以是CV_RETR_EXTERNAL(只查找最外层轮廓)、CV_RETR_LIST(查找所有轮廓,但不建立轮廓的层次结构)、CV_RETR_CCOMP(查找所有轮廓,并将轮廓分为两级:外部轮廓和内部轮廓)或CV_RETR_TREE(查找所有轮廓,并建立轮廓的层次结构)。
5. method:轮廓的近似方法,可以是CV_CHAIN_APPROX_NONE(保存所有的轮廓点)、CV_CHAIN_APPROX_SIMPLE(仅保存轮廓的端点)、CV_CHAIN_APPROX_TC89_L1或CV_CHAIN_APPROX_TC89_KCOS。
6. offset:可选的偏移量,在轮廓的每个点上加上该偏移量。
这些参数共同影响了findContours函数的轮廓查找和输出结果。
相关问题
opencv findContours()各参数意义
`findContours()` 函数是 OpenCV 中用于查找轮廓的函数。其函数原型如下:
```
cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> contours, hierarchy
```
其中各参数的含义如下:
- `image`:输入的二值化图像(一般是经过 `threshold()` 或 `Canny()` 函数处理后的结果)。
- `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`:使用 Teh-Chin 链逼近算法。
- `cv2.CHAIN_APPROX_TC89_KCOS`:使用 Teh-Chin 链逼近算法。
- `contours`:检测到的轮廓,是一个 Python 列表,每个元素都是一个轮廓的点集。
- `hierarchy`:轮廓的层次信息,是一个包含每个轮廓的父子关系和内部/外部关系的 numpy 数组。
- `offset`:可选参数,表示轮廓坐标的偏移量。
在使用 `findContours()` 函数时,需要注意以下几点:
- `image` 必须是一个二值化图像,即只有 0 和 255 两个值。
- `contours` 和 `hierarchy` 都是输出参数,需要使用赋值语句来接收。
- 在 `RETR_CCOMP` 和 `RETR_TREE` 两种模式下,每个轮廓都包含了两个子轮廓,因此需要使用循环语句来遍历所有轮廓。
- 在使用 `RETR_TREE` 模式时,可以通过 `hierarchy` 参数获取每个轮廓的父子关系和内部/外部关系。
opencv 的findcontours函数的含义
OpenCV的findContours函数是一种图像处理算法,用于检测图像中的轮廓。它可以从二值图像中提取边界并将其表示为一组连续的点。通过对这些轮廓进行分析和处理,可以实现许多不同的图像处理任务,例如对象检测、形状分析和图像识别。该函数的主要参数包括输入图像、轮廓检测模式、轮廓逼近方法和轮廓阈值等。
阅读全文