代码之家  ›  专栏  ›  技术社区  ›  justPassBy

为什么哈里斯矩阵是正定的

  •  2
  • justPassBy  · 技术社区  · 6 年前

    我在学习“哈里斯角点检测器”算法, 这就是为什么哈里斯矩阵是半正定的。

    因为哈里斯矩阵的轨迹是正的,所以我可以告诉哈里斯矩阵的两个特征值都是正的,或者一个正一个负。

    那么,如何推导哈里斯矩阵是半正定的呢?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Cris Luengo    6 年前

    哈里斯角点检测器计算中生成的矩阵是结构张量( see here on Wikipedia ).结构张量 M 是由梯度场的外积生成的矩阵 g 就其本身而言:

    g = gradient( image );
    M = smooth( g * g' );
    

    (与 smooth 应用的局部平滑)。

    没有任何平滑, g * g' 通过构造,总有一个正特征值和一个0特征值。通过写出结果矩阵的行列式可以看出这一点,行列式总是0,这意味着其中一个特征值必须是0(它们的乘积就是行列式)。另一个必须是正的,因为轨迹是两个平方的和;因为一个特征值为0,所以另一个特征值必须等于轨迹。

    局部平滑将几个这样的矩阵相加(加权相加)。将半正定矩阵相加 leads to a positive-semi-definite matrix :如果 v'*A*v>=0 v'*B*v>=0 然后 v'*(A+B)*v>=0 .