Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我目前正在研究在Octave中复制Matlab的regionprops函数的某些功能。但是,我对该功能的一个子集有些困扰。我的重点是“偏心率”,“ MajorAxisLength”,“ MinorAxisLength”和“ Orientation”属性。在文档中,它们都源自“ ...具有与该区域相同的第二矩的椭圆”。
所以我的问题是,这些第二时刻是什么?如何找到它们? 我正在查看此链接: http : //en.wikipedia.org/wiki/Image_moments 老实说,这让我更加困惑。谁能指出我对初学者更友好的东西?谢谢。 回答: 该文档用“第二时刻”表示第二个中心时刻 。 对于一维数据,这将是方差 (或标准偏差的平方)。 在您的情况下,如果您具有二维数据,则第二个中心矩是协方差矩阵 。 如果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); 现在,这与椭圆有什么关系?好吧,实际上,您在这里所做的就是将多元正态分布拟合到数据中。协方差矩阵确定该分布的形状,而多元正态分布的等高线(等待它) 是椭圆 ! 椭圆轴的方向和长度由协方差矩阵的特征向量和特征值给出: [V, D]=eig(Sigma); V的列现在是特征向量(即轴的方向),而D对角线上的值是特征值(即轴的长度)。因此,您已经有了“ MajorAxisLength”和“ MinorAxisLength”。方向可能只是主轴与水平线之间的角度(提示:使用atan2从沿主轴指向的向量计算该角度)。最后, 偏心是 sqrt(1-(b/a)^2) 其中,a是长轴的长度,b是短轴的长度。 更多&回答... |
![]() |
![]() |