了解OpenCV层次结构

时间:2014-04-03 10:13:05

标签: opencv hierarchy

这里是OpenCV的新手。我试图了解层次结构向量应该包含什么。我理解对于对象跟踪和使用findCountours函数时,通常使用vector,但我想了解这意味着什么。在此先感谢您的帮助!

1 个答案:

答案 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我们知道bcd,{{1} } {和e都包含在f的同一级别。 a也有子轮廓bg也有两个孩子。