Implémenter un détecteur d'angle Harris

Je suis la mise en œuvre de Harris coin détecteur à des fins éducatives mais je suis coincé à la harris réponse de la partie. Fondamentalement, ce que je fais, c'est:

  1. Calculer l'intensité de l'image des gradients dans les x - et y-direction
  2. Flou de sortie de (1)
  3. Calculer Harris réponse sur la sortie de (2)
  4. Supprimer les non-maximas en sortie de (3) dans un 3x3-quartier et le seuil de sortie

1 et 2 semblent bien fonctionner; cependant, je reçois de très petites valeurs comme la Harris réponse, et aucun point n'atteignent le seuil. L'entrée est un standard de la photographie en plein air.

[...]
[Ix, Iy] = intensityGradients(img);
g = fspecial('gaussian');
Ix = imfilter(Ix, g);
Iy = imfilter(Iy, g);
H = harrisResponse(Ix, Iy);
[...]

function K = harrisResponse(Ix, Iy)
    max = 0;
    [sy, sx] = size(Ix);
    K = zeros(sy, sx);
    for i = 1:sx,
        for j = 1:sy,
            H = [Ix(j,i) * Ix(j,i), Ix(j,i) * Iy(j,i)
                Ix(j,i) * Iy(j,i), Iy(j,i) * Iy(j,i)];
            K(j,i) = det(H) / trace(H);
            if K(j,i) > max,
                max = K(j,i);
            end
        end
    end
    max
end

Pour la photo de l'échantillon, max finit par être 6.4163 e-018 qui semble bien trop faible.

source d'informationauteur Etan