

【Python】【OpenCV】关于cv2.findContours()轮廓索引(编号)解析(RETR_TREE) - Va...
source link: https://www.cnblogs.com/vangoghpeng/p/17929206.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【Python】【OpenCV】关于cv2.findContours()轮廓索引(编号)解析(RETR_TREE)
在打算自己实现二维码的定位的时候,看到了相关博文的关于cv2.findContours返回的层级信息来定位三个“回”字从而达到定位二维码的目的,但是返回的hierarchy中的层级信息分别对应的是哪个轮廓却困扰了许久,查阅了很多资料最后还是自己手动找出了清晰的规律。
关于hierarchy返回的每一组list中的每个元素的意义分别是:
1、Next 表示相同等级的下一个轮廓。
2、Previous 表示相同轮廓级别的上一个轮廓。
3、First_Child 表示其第一个子轮廓。
4、Parent 代表示其父代轮廓的索引。
具体的描述我就不过多赘述了,相关资料可以跳转参考 -> OpenCV-Python轮廓层次结构|极客笔记 (deepinout.com)
这里只介绍针对同一层级的轮廓序号是如何命名,先给出结论,在同一层级中(可以看作是一个坐标系xy),垂直方向 > 水平方向 (即,先找寻y轴,当y轴相同时再找寻x轴),哪个轮廓离原点(0,0)更远就会被优先检测到,并优先命名编号。

1、先自己创建了一个array数组并初始化为0(也就是都是黑色)
2、绘制三个区域,大小为50x50的正方形,并置为白色
3、pretreatment是个函数,自行修改成cv2.findContours()然后再cv2.drawContours()即可,这边就懒得改了~

上图展示了我们绘制的三个白块,并对他们的轮廓进行了绘制,接下来我们依次查找index为0的轮廓。
1、当水平方向位移量不同,垂直方向位移量相同时,右方的白块会被优先检测到,我们绘制出index为0的轮廓(绿色):

2、当水平方向位移量相同,垂直方向位移量不同时,下方的白块会被优先检测到:

3、当水平方向位移不同,垂直方向位移不同时,先找y轴:

最后我们显示四个白块,并将hierarchy数据展示出来:

根据之前的检测顺序,我已经标出了从0~3这四个轮廓的编号,下面我们先自己写出每个轮廓的hierarchy:
[1, -1, -1, -1]、[2, 0, -1, -1]、[3, 1, -1, -1]、[-1, 2, -1, -1]
和程序中得到的hierarchy结果相同,至此关于RETR_TREE模式的轮廓索引(编号)理解就到位了。
Recommend
-
74
今天苹果圈都在讨论那个网曝iPhoneSE2视频的真实性,而来自BGR的最新消息称,有初步证据显示这个视频有可能是真的。BGR报道称,一周前从「信息源」(已多次证实可靠性)处得到几张iPhoneSE2轮廓图。为了确认真实性,BGR马上开始在网络上搜索相关的设计报道,直到今...
-
28
目标 了解轮廓是什么。 学习查找轮廓,绘制轮廓等。 你将看到以下功能: cv.findContours (),...
-
7
点击上方“3D视觉工坊”,选择“星标”干货第一时间送达本次介绍一个...
-
15
经典相位法三维轮廓测量模型 Original...
-
14
Python-基于OpenCV的轮廓填充 泛洪算法 孔洞填充 ...
-
9
dotnet OpenXML 读取形状轮廓线条样式序号超过主题样式列表数在 OpenXML 中,默认的形状可以通过指定 LineReference 让形状使用文档主题里面的样式。文档主题里面包含多个样式,在形状里面指定样式通过的是序号的方法,如果在形状里面指定的序号超过了主题...
-
8
调和曲线图和轮廓图的比较 | 统计之都Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/fontdata.js 多元数据的可视化方法很多,譬如散点图、星图、雷达图、脸谱图、协同图等,大致可分为以下几类:1. 基于点(如二维、三维散点图)...
-
6
python图像处理(轮廓提取)
-
4
python图像处理(轮廓提取)
-
6
opencv-python 4.9.2. 轮廓特征 图像的矩可帮助你...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK