这里是OpenCV的新手。我试图了解层次结构向量应该包含什么。我理解对于对象跟踪和使用findCountours函数时,通常使用vector,但我想了解这意味着什么。在此先感谢您的帮助!
答案 0 :(得分:0)
轮廓是图像区域周围的闭合边缘。此轮廓可能包含轮廓,因此我们需要一种方法来存储此层次结构。层次结构向量包含解释轮廓如何相互嵌套的所有信息。
从OpenCV documentation开始,它是
可选输出向量,包含有关图像拓扑的信息。它具有与轮廓数量一样多的元素。对于每个第i个轮廓轮廓[i],元素层次[i] [0],层次[i] [1],层次[i] [2]和层次[i] [3]被设置为0-基于相同等级的下一轮和前轮廓的轮廓,第一轮廓和父轮廓的基础索引。如果轮廓i没有下一个,前一个,父级或嵌套轮廓,则层次结构[i]的相应元素将为负数。
您可以将此视为双向链接列表,但列表中的每个项目都可能指向父级和/或子级。我们可以使用下一个和上一个索引来查找具有相同父级的所有轮廓。如果子轮廓包含子轮廓,则每个轮廓将指向子链接列表。负值与传统链表的NULL
指针相同。
An example:
a
|
b,c,d,e,f
| |
g h,i
a
指向b
作为一个孩子,b
我们知道b
,c
,d
,{{1} } {和e
都包含在f
的同一级别。 a
也有子轮廓b
。 g
也有两个孩子。