Dans le cadre de mon baccalauréat-thèse, je suis en train de mettre en œuvre un détecteur d'angle avec l'algorithme Harris et Stephens: A combined Corner and Edge DetectorLe Harris & Stephens algorithme de détection d'angle: déterminant toujours 0 (zéro)
Je ne calcule :
- les écarts de X et Y avec les filtres de Sobel (3x3)
Calculer le système matrice M
M = [AC; CB]
ce qui signifie que, si je suis bien:
- A = Réponse de sobel_x au carré: Ix * Ix (à certains pixels)
- B = Réponse de sobel_y au carré: Iy * Iy (à certains pixels)
- C = réponse de sobel_x multiplié par la réponse de sobel_y: Ix * Iy (à certains pixels)
maintenant, je ne calcule trace (M) et ce que je suis particulièrement préoccupé par plus: déterminant (M)
Dans il papier ils suggèrent l'approximation suivante pour le déterminant, car il évite le calcul coûteux des valeurs propres:
det (M) = A * B - C^2
Cette doit toujours se terminer par zéro!
Le det d'expression (M) = A * B - C^2 peut être réécrite comme: (en utilisant la connaissance du point 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
Alors pourquoi devrais-je même prendre la peine de calculer le déterminant? Pour autant que je vois, il suffit de calculer la trace! (Ou est-ce que j'ai fait quelque part une erreur majeure?)
Vouliez-vous dire pour la matrice M = [A C, C B]? Sinon, je n'ai aucune idée de ce à quoi B fait référence. – hardmath