PDA

查看完整版本 : 一个区域的第二时刻是什么?


poster
2019-12-10, 16:49
我目前正在研究在Octave中复制Matlab的regionprops函数的某些功能。但是,我对该功能的一个子集有些困扰。我的重点是“偏心率”,“ MajorAxisLength”,“ MinorAxisLength”和“ Orientation”属性。在文档中,它们都源自“ ...具有与该区域相同的第二矩的椭圆”。

所以我的问题是,这些第二时刻是什么?如何找到它们?

我正在查看此链接: http (http://en.wikipedia.org/wiki/Image_moments) : //en.wikipedia.org/wiki/Image_moments (http://en.wikipedia.org/wiki/Image_moments)

老实说,这让我更加困惑。谁能指出我对初学者更友好的东西?谢谢。


回答:
该文档用“第二时刻”表示第二个中心时刻 (http://en.wikipedia.org/wiki/Central_moment) 。

对于一维数据,这将是方差 (http://en.wikipedia.org/wiki/Variance) (或标准偏差的平方)。

在您的情况下,如果您具有二维数据,则第二个中心矩是协方差矩阵 (http://en.wikipedia.org/wiki/Covariance_matrix) 。

如果X是您区域中点的n×2矩阵,则可以像这样(未经测试)在MATLAB中计算协方差矩阵Sigma :

mu=mean(X,1); X_minus_mu=X-repmat(mu, size(X,1), 1); Sigma=(X_minus_mu'*X_minus_mu)/size(X,1); 现在,这与椭圆有什么关系?好吧,实际上,您在这里所做的就是将多元正态分布 (http://en.wikipedia.org/wiki/Multivariate_normal_distribution)拟合到数据中。协方差矩阵确定该分布的形状,而多元正态分布的等高线(等待它) 是椭圆 (http://en.wikipedia.org/wiki/Multivariate_normal_distribution#Geometric_interpretation) !

椭圆轴的方向和长度由协方差矩阵的特征向量和特征值给出:

[V, D]=eig(Sigma); V的列现在是特征向量(即轴的方向),而D对角线上的值是特征值(即轴的长度)。因此,您已经有了“ MajorAxisLength”和“ MinorAxisLength”。方向可能只是主轴与水平线之间的角度(提示:使用atan2从沿主轴指向的向量计算该角度)。最后, 偏心 (http://en.wikipedia.org/wiki/Ellipse#Eccentricity)是

sqrt(1-(b/a)^2) 其中,a是长轴的长度,b是短轴的长度。



更多&回答... (https://stackoverflow.com/questions/1532168)