矩函数在图像分析中有着广泛的应用,一个从一副数字图形中计算出来的矩集,通常描述了该图像形状的全局特征。
一阶矩与形状有关
二阶矩显示曲线围绕直线平均值的扩展程度
三阶矩关于平均值的对称性的测量
由二阶矩和三阶矩可以导出一组共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 contour,bool oriented=false)

本文介绍了OpenCV中图像矩的概念及其在图像分析中的应用。通过`moments`函数计算图像的矩,包括一阶矩、二阶矩和三阶矩,这些矩反映了图像的形状特征。此外,还讨论了`contourArea`函数用于计算轮廓面积,以及`arcLength`函数用于计算轮廓长度。不变矩是图像的重要统计特性,对于平移、伸缩、旋转具有不变性。
最低0.47元/天 解锁文章
1479

被折叠的 条评论
为什么被折叠?



