矩函数在图像分析中有着广泛的应用,一个从一副数字图形中计算出来的矩集,通常描述了该图像形状的全局特征。
一阶矩与形状有关
二阶矩显示曲线围绕直线平均值的扩展程度
三阶矩关于平均值的对称性的测量
由二阶矩和三阶矩可以导出一组共7个不变矩。
不变矩是图像的统计特性,满足平移、伸缩、旋转均不变的不变性
在Opencv中,如何计算一个图像的矩
一般由moments 、 contourArea 、arcLength这三个函数配合求取
- 使用moments计算图像所有的矩(最高到3阶)
- 使用contourArea来计算轮廓面积
- 使用arcLength来计算轮廓或曲线长度
矩的计算:moments()函数
C++
Moments moments(InputArray array,bool binaryImage=false)
第一个参数:InputArray 类型的array,输入参数,可以使光栅图像(单通道,8位或浮点的二维数组)或二维数组(1N或N1)
第二个参数:默认值false。若取true,则所有非零像素为1.此参数仅对于图像使用。
计算轮廓面积:contourArea()函数
double contourArea(InputArray contou