多边形逼近cv::approxPolyDP(curve, approxCurve, epsilon, closed)
InputArray curve:输入曲线,数据类型可以为vector
OutputArray approxCurve:输出折线,数据类型可以为vector
double epsilon:判断点到相对应的line segment 的距离的阈值。(距离大于此阈值则舍弃,小于此阈值则保留,epsilon越小,折线的形状越“接近”曲线。)
bool closed:曲线是否闭合的标志位。
如果要更紧凑地表示区域的形状,可以采用多边形逼近。在创建时需要设置精度参数,
表示形状与对应的简化多边形之间能接受的最大距离。它是cv::approxPolyDP(contours[1],poly,5,true)函数的第四个参数。
返回结果是cv::Point类型的向量,表示多边形顶点个数。
在画这个多边形时,要迭代遍历整个向量,并在顶点之间画直线,把它们逐个连接起来。
凸包cv::convexHull()
凸包是包含该形状的最小凸多边形。可以把它看作一条绕在区域周围的橡皮筋。在形状轮廓中凹进去的位置,凸包轮廓会与原始轮廓发生偏离。