findCounters函数是个重载函数,有两种声明方式:
普通声明:
findContours( InputOutputArray image, OutputArrayOfArrays contours,
int mode, int method, Point offset=Point());
高级一点的:
findContours( InputOutputArray image, OutputArrayOfArrays contours,
OutputArray hierarchy, int mode,
int method, Point offset=Point());
高级一点的声明主要是多了一个 OutputArray hierarchy:
hierarchy的作用是说明各个轮廓的继承关系。
hierarchy也是一个向量,长度和contours相等,每个元素和contours的元素对应。hierarchy的每个元素是一个包含四个整型数的向量。即:
vector<Vec4i> hierarchy; //Vec4i is a vector contains four number of int
hierarchy[i][0],hierarchy[i][1],hierarchy[i][2],hierarchy[i][3],
分别表示的是第i条轮廓(contours[i])的下一条,前一条,包含的第一条轮廓(第一条子轮廓)和包含他的轮廓(父轮廓)。
我在使用时发现findcounters函数检测圆时,对同一个圆总是返