hierarchy参数讲解
时间: 2023-09-20 10:12:36 浏览: 170
`hierarchy` 参数是 `FindContours` 函数的一个可选参数,用于描述轮廓之间的关系,如父子关系等。它是一个 N 行 4 列的整数矩阵,其中每一行描述一个轮廓,包括以下 4 个整数:
1. `hierarchy[i][0]`:表示第 i 个轮廓的后一个轮廓的索引,如果没有后一个轮廓,则为 -1。
2. `hierarchy[i][1]`:表示第 i 个轮廓的前一个轮廓的索引,如果没有前一个轮廓,则为 -1。
3. `hierarchy[i][2]`:表示第 i 个轮廓的第一个子轮廓的索引,如果没有子轮廓,则为 -1。
4. `hierarchy[i][3]`:表示第 i 个轮廓的父轮廓的索引,如果没有父轮廓,则为 -1。
在 `hierarchy` 矩阵中,轮廓之间的关系可以用下图来表示:
![image](https://docs.opencv.org/3.4/hierarchy.png)
其中,第一列表示后一个轮廓的索引,第二列表示前一个轮廓的索引,第三列表示子轮廓的索引,第四列表示父轮廓的索引。
使用 `hierarchy` 参数可以方便地对轮廓进行分析和处理,如找到所有的外轮廓、内轮廓等。
相关问题
python cnts, hierarchy = cv2.findContours参数介绍
引用\[1\]:在使用cv2.findContours()函数时,它的参数包括输入图像、轮廓检测模式和轮廓逼近方法。具体的代码如下:image, cnts, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)。其中,thresh是输入的二值图像,cv2.RETR_TREE是轮廓检测模式,cv2.CHAIN_APPROX_SIMPLE是轮廓逼近方法。\[1\]
引用\[3\]:在上面的例程中,我们可以看到cv2.findContours()函数的参数是thresh、cv2.RETR_TREE和cv2.CHAIN_APPROX_SIMPLE。其中,thresh是通过阈值处理得到的二值图像,cv2.RETR_TREE是轮廓检测模式,表示检测所有轮廓并建立轮廓之间的全层次关系,cv2.CHAIN_APPROX_SIMPLE是轮廓逼近方法,表示只保留轮廓的端点坐标。\[3\]
综上所述,cv2.findContours()函数的参数介绍如下:
- 输入图像:二值图像,通过阈值处理得到。
- 轮廓检测模式:指定轮廓检测的方式,常见的有cv2.RETR_EXTERNAL(只检测外部轮廓)、cv2.RETR_LIST(检测所有轮廓,不建立层次关系)和cv2.RETR_TREE(检测所有轮廓并建立轮廓之间的全层次关系)等。
- 轮廓逼近方法:指定轮廓的逼近方法,常见的有cv2.CHAIN_APPROX_NONE(保留所有的轮廓点)、cv2.CHAIN_APPROX_SIMPLE(只保留轮廓的端点坐标)等。
#### 引用[.reference_title]
- *1* *2* [在cv2.findContours函数使用中,报ValueError: not enough values to unpack (expected 3, got 2)](https://blog.csdn.net/qq_42178122/article/details/127421931)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [cv2.findContours()返回函数详解](https://blog.csdn.net/weixin_43588171/article/details/111598268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
drawContours参数详解
drawContours是OpenCV中的一个函数,用于在图像上绘制轮廓。它的参数如下:
- image:输入/输出图像,即要在其上绘制轮廓的图像。
- contours:输入的轮廓向量,每个轮廓由一系列点组成。
- contourIdx:要绘制的轮廓的索引。如果为负数,则绘制所有轮廓。
- color:轮廓的颜色。
- thickness:轮廓线条的粗细。默认值为1。
- lineType:线条的类型。默认值为8。
- hierarchy:可选的轮廓层次结构,用于绘制轮廓的子轮廓。默认值为noArray()。
- maxLevel:要绘制的轮廓的最大层次。默认值为INT_MAX。
- offset:可选的偏移量,用于在图像上绘制轮廓。默认值为Point()。
其中,最常用的参数是image、contours、contourIdx和color。其他参数都有默认值,可以根据需要进行更改。
阅读全文