int GetContourLevel(int targetIdx, std::vector<cv::Vec4i> hierarchy) {
if (hierarchy[targetIdx][3] == -1) {
return 0;
}
else {
return 1 + GetContoursLevel(hierarchy[targetIdx][3], hierarchy);
}
}
求轮廓层级时找轮廓需要用到RETR_TREE
cv::findContours(img, contours, hierarchy, RETR_TREE, CHAIN_APPROX_NONE, Point());
轮廓contours下标i的轮廓为外轮廓(内部为非0区域)的条件为:
if (GetContoursLevel(i, hierarchy) % 2 == 0) {}