今天给大家带来的是关于图像中轮廓区域的面积、周长与不规则图形的曲线周长计算方式,下面详细介绍了在opencv中函数的构成与参数含义说明,帮助大家尽快掌握其用法。
ContourArea
计算整个轮廓或部分轮廓的面积
复制
double cvContourArea( const CvArr* contour, CvSlice slice=CV_WHOLE_SEQ );
- contour
- 轮廓 (边界点的序列或数组).
- slice
- 感兴趣轮廓部分的起始点,缺省是计算整个轮廓的面积。
函数 cvContourArea 计算整个轮廓或部分轮廓的面积。 对后面的情况,面积表示轮廓部分和起始点连线构成的封闭部分的面积。如下图所示:
注: 轮廓的方向影响面积的符号。因此函数也许会返回负的结果。应用函数 fabs() 得到面积的绝对值。
ArcLength
计算轮廓周长或曲线长度
复制
double cvArcLength( const void* curve, CvSlice slice=CV_WHOLE_SEQ, int is_closed=-1 );
- curve
- 曲线点集序列或数组
- slice
- 曲线的起始点,缺省是计算整个曲线的长度
- is_closed
- 表示曲线是否闭合,有三种情况:
- is_closed=0 – 假设曲线不闭合
- is_closed>0 – 假设曲线闭合
- is_closed<0 – 若曲线是序列,检查 ((CvSeq*)curve)->flags 中的标识 CV_SEQ_FLAG_CLOSED 来确定曲线是否闭合。否则 (曲线由点集的数组 (CvMat*) 表示) 假设曲线不闭合。
函数 cvArcLength 通过依次计算序列点之间的线段长度,并求和来得到曲线的长度。
评论 (0)