Harris & Stephens 角点检测算法:行列式始终为 0(零)

muu*_*uuh 6 zero detection feature-detection corner-detection

作为我的学士论文的一部分,我正在尝试使用 Harris 和 Stephens 算法实现角检测器: 组合角和边缘检测器

我确实计算:

  1. 使用 sobel 滤波器 (3x3) 的 x 和 y 偏差
  2. 计算系统矩阵M

    M = [交流; CB]

    这意味着,如果我一切顺利:

    1. A = sobel_x 平方的响应:Ix * Ix(在某个像素处)
    2. B = sobel_y 平方的响应:Iy * Iy(在某个像素处)
    3. C = sobel_x 的响应乘以 sobel_y 的响应:Ix * Iy(在某个像素处)
  3. 现在我确实计算了 trace(M) 和我特别关心的: determinant(M)

在那里的论文中,他们建议对行列式进行以下近似,因为它避免了昂贵的特征值计算:

det(M) = A * B - C^2

必须始终以零终止!

表达式 det(M) = A * B - C^2 可以改写为:(使用第 2 点的知识)

det(M) = A * B - C * C

det(M) = Ix*Ix * Iy*Iy - Ix*Iy * Ix*Iy

det(M) = Ix*Ix * Iy*Iy - Ix*Ix * Iy*Iy

det(M) = 0

那么我为什么还要费心计算行列式呢?在我看来,计算trace就足够了!(或者我在某个地方犯了一个重大错误?)

hak*_*ami 5

在计算 R 之前,对 Ix2、Iy2、Ixy 应用高斯核。