6

作为我的学士论文的一部分,我正在尝试使用 Harris 和 Stephens 算法实现角检测器: A combined Corner and Edge Detector

我计算:

  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) 以及我特别关心的:行列式(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就足够了!(或者我在某个地方犯了一个重大错误?)

4

2 回答 2

4

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

于 2013-11-13T08:54:07.490 回答
-1

我遇到了同样的问题。对于图像中的每个像素,您需要考虑一个小窗口,例如像素周围的 3x3。

对于该 3x3 窗口中的每个像素,您对 Ix^2、Ix*Iy 和 Iy^2 应用高斯掩码以构造 2x2 矩阵 H'。然后对 H' 矩阵求和以获得最终的 H 矩阵,然后从那里计算行列式。

我不清楚的是为什么需要应用高斯蒙版,因为网上找到的许多幻灯片和资源都没有提到它

于 2015-04-19T22:42:19.097 回答