我有一个轮廓(RETR_TREE)。我明白,我有一个由数组表示的轮廓树
hierarchy[][4]
结构是[Next,Previous,First_Child,Parent]
我的问题是获得当前轮廓的水平。我想知道关卡。我绝对不知道如何从父母,孩子,下一个或上一个轮廓中获得这个级别。
任何人都可以提供代码来获取树中轮廓的等级吗?
非常感谢
答案 0 :(得分:0)
当您想要获得轮廓水平时,您必须转到父级父级的父级,直到到达根。这适用于任何树的数据结构,而不仅仅是这一个。
int nodeIndex = ....; // the contour whose depth you want to know
int depth=0;
// move from child to parent until you reach the outermost contour
while(hierarchy[nodeIndex][3] != -1) {
depth++;
nodeIndex = hierarchy[nodeIndex][3];
}