C ++ OpenCV按级别排序轮廓层次结构

时间:2015-01-28 17:27:49

标签: sorting opencv tree hierarchy

我有一个轮廓(RETR_TREE)。我明白,我有一个由数组表示的轮廓树

hierarchy[][4]

结构是[Next,Previous,First_Child,Parent]

http://docs.opencv.org/trunk/doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/py_contours_hierarchy.html

我的问题是获得当前轮廓的水平。我想知道关卡。我绝对不知道如何从父母,孩子,下一个或上一个轮廓中获得这个级别。

任何人都可以提供代码来获取树中轮廓的等级吗?

非常感谢

1 个答案:

答案 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];
}