opencv —— contourArea、arcLength 计算轮廓面积与长度cv2.approxPolyDP多边形近似
计算轮廓面积:contourArea 函数double contourArea(InputArray contour, bool oriented = false);contour,输入的二维点集(轮廓顶点),可以是 vector 或 Mat 类型。oriented,面向区域标识符。有默认值 false。若为 true,该函数返回一个带符号的面积值,正负取决于轮廓的方向(顺时针还是逆时针)。若为
计算轮廓面积:contourArea 函数
double contourArea(InputArray contour, bool oriented = false);
- contour,输入的二维点集(轮廓顶点),可以是 vector 或 Mat 类型。
- oriented,面向区域标识符。有默认值 false。若为 true,该函数返回一个带符号的面积值,正负取决于轮廓的方向(顺时针还是逆时针)。若为 false,表示以绝对值返回。
计算轮廓长度:arcLength 函数
arcLength 函数用于计算封闭轮廓的周长或曲线的长度。
double arcLength(InputArray curve, bool closed);
- curve,输入的二维点集(轮廓顶点),可以是 vector 或 Mat 类型。
- closed,用于指示曲线是否封闭。
3、approxPolyDP()函数
以指定的精度近似生成多边形曲线。
函数逼近一条曲线或另一条曲线/顶点较少的多边形,使它们之间的距离小于或等于指定的精度。它使用Douglas-Peucker算法
void approxPolyDP(
InputArray curve, // 输入的点集(存储在std::vector或Mat中的二维点的输入向量)
OutputArray approxCurve, // 输出的点集,当前点集是能最小包容指定点集的。draw出来即是一个多边形;
double epsilon, // 指定的精度,也即是原始曲线与近似曲线之间的最大距离。
bool closed // 若为true,则说明近似曲线是闭合的,它的首位都是相连,反之,若为false,则断开。
);
更多推荐