opencv —— contourArea、arcLength 计算轮廓面积与长度cv2.approxPolyDP多边形近似

计算轮廓面积: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,则断开。
);

你可能感兴趣的:(opencv,图像处理)