opencv图像处理学习(三十四)——凸包检测

凸包是一个计算机几何图形学中的概念,在二维欧几里得空间中,凸包可想象为一条刚好包住所有点的橡皮圈。对于给定二维平面上的点集,凸包就是将最外层的点链接起来的构成的凸多边型,它能包含点集中所有的点。物体的凸包检测常应用在物体识别、手势识别及边界检测等领域。

Opencv中提供了函数convexHull()用于对物体轮廓凸包进行检测,对形状凸包缺陷分析时使用convexityDefects()函数,每个缺陷区包含四个特征量:起始点、结束点、距离及最远点。

void convexHull(InputArray points,OutputArray hull,bool clockwise = false,bool returnPoints = true)

实现一个点集的凸包检测,参数points表示输入2维点集,可存储在向量或矩阵Mat中,参数hull为输出凸包,这是一个整数索引的载体或点的矢量;参数clockwise为方向标志位,参数returnPoints为操作标准位。

void convexityDefects(InputArray contour,InputArray convexhull,OutputArray convexityDefects)

完成凸包缺陷轮廓操作。参数contour表示输入参数检测到的轮廓,可以通过调用获取findContours函数来得到;参数convexhull表示输入参数检测到的凸包,可以调用凸包convexhull函数来得到,为vector>和vector>类型,否则不能通过ASSERT检查;参数convexityDefects为输出参数,检测到的最终结果应为vector>类型。

你可能感兴趣的:(学习opencv,opencv)