偏心率的数学定义禹晶、肖创柏、廖庆敏《数字图像处理面向新工科的电工电子信息基础课程系列教材》P312区域的拟合椭圆看这里。Rafael Gonzalez的二阶中心矩的表达不说人话。半长轴和半短轴正比于特征值的根号。Rafael Gonzalez的图11.21和式(11-23)错了。因此用特征值表示椭圆的离心率e ee的表达式应该是e c a a 2 − b 2 a e \frac{c}{a} \frac{\sqrt{a^2 - b^2}}{a}eac​aa2−b2​​这里e ee是离心率c cc是中心到焦点的距离而a aa和b bb分别是椭圆的半长轴和半短轴的长度。代入特征值e s 2 λ 1 − s 2 λ 2 s λ 1 λ 1 − λ 2 λ 1 e \frac{\sqrt{s^2\lambda_1 - s^2\lambda_2}}{s\sqrt{\lambda_1}} \frac{\sqrt{\lambda_1 - \lambda_2}}{\sqrt{\lambda_1}}esλ1​​s2λ1​−s2λ2​​​λ1​​λ1​−λ2​​​λ 1 \lambda_1λ1​和λ 2 \lambda_2λ2​分别为最大特征值和最小特征值。s ss表示几个σ \sigmaσ偏心率与这个尺度无关。偏心率为e 1 − λ 2 λ 1 e \sqrt{1 - \frac{\lambda_2}{\lambda_1}}e1−λ1​λ2​​​离心率e ee是衡量椭圆相对于圆的“拉伸”程度的一个量。离心率e ee的范围是从 0对于圆形到接近但小于 1对于非常扁平的椭圆。对于圆形区域λ 1 λ 2 \lambda_1 \lambda_2λ1​λ2​离心率为 0。对于直线λ 2 0 \lambda_2 0λ2​0离心率为 1。因此这个描述符的值范围是[ 0 , 1 ] [0, 1][0,1]。马氏距离、PCA相同的理论基础这与马氏距离、PCA本质上是一样的。相同的理论基础。MATLAB的regionprops函数MATLAB给出了拟合椭圆是使用2 σ 2\sigma2σ为什么是2以下是MATLAB给出的结果。eccsqrt(stats.MajorAxisLength^2-stats.MinorAxisLength^2)/stats.MajorAxisLength ecc0.8416验证Ccov(samples);[U,D]eig(C);ddiag(D);[~,order]sort(d,descend);UU(:,order);dd(order);% D diag(d(order));sqrtdsqrt(d);4*sqrtd ans499.5233269.8259为什么椭圆的协方差矩阵等于S \boldsymbol{S}S在构造椭圆时特意取了半轴a 2 λ 1 , b 2 λ 2 a2\sqrt{\lambda_1}, b2\sqrt{\lambda_2}a2λ1​​,b2λ2​​这个系数2就是用来保证“椭圆内部”的协方差矩阵正好等于原协方差矩阵的。a c λ 1 , b c λ 2 ac\sqrt{\lambda_1}, bc\sqrt{\lambda_2}acλ1​​,bcλ2​​那么椭圆内部协方差矩阵为Σ c 2 4 S \boldsymbol{\varSigma} \frac{c^2}{4}\boldsymbol{S}Σ4c2​S只有当c 2 c2c2时才等于S \boldsymbol{S}S。一句话总结c 2 c2c2时椭圆区域的协方差矩阵等于原区域的协方差矩阵——这正是构造系数选择2 22的原因。