0036-用OpenCV的函数convexHull做凸包(凸壳)检测

问:什么叫凸包?
答:凸包又叫凸壳。如果在集合A内连接任意两个点的直线段都在A的内部,则称集合A是凸形的。直观的理解,就是一个多边型,没有凹的地方。凸包能包含点集中所有的点,凸包检测常应用在物体识别、手势识别及边界检测等领域。

OpenCV中提供了函数convexHull()用于对物体轮廓凸包进行检测。

这个函数的原型如下
C++: void convexHull(InputArray points, OutputArray hull, bool clockwise=false, bool returnPoints=true )
参数意义如下
points:输入点集。
hull:检测得到的凸包。它要么是整型矢量要么是点矢量。如果是整型矢量,这些整型值是输入点集的索引值(因为凸包是输入点集的子集)。
clockwise:方向标志。如果为ture,代表方向为顺时针,如果为false,代表方向是逆时针。系统假定x轴向右和y轴向上为正方向。
returnPoints:当这个值为ture时,函数返回点集,否则返回索引值。当输出阵列为std::vector时,标志无效,此时输出类型取决于std::vector的类型。std::vector<int> 返回索引值;std::vector<Point>返回点集。

示例代码如下

代码请加Q2034196302获取
代码请加Q2034196302获取
代码请加Q2034196302获取


运行结果如下图所示

猜你喜欢

转载自blog.csdn.net/opencv_source/article/details/78779799