Je travaille avec du code trouvé dans Rosetta Code pour créer une transformation Hough. Je veux maintenant trouver toutes les lignes d'une image. Pour ce faire, j'ai besoin des valeurs ρ et θ de chacun des pics de l'espace de Hough. Un exemple de sortie pour un pentagone ressemble à ceci:
Comment puis-je trouver une seule coordonnée [θ, ρ] pour chacun des «points chauds» visibles dans l'espace de Hough?
la source
center of gravity
?Ce code sur l'échange de fichiers vous aidera à trouver tous les maxima locaux. http://www.mathworks.com/matlabcentral/fileexchange/14498-local-maxima-minima
Si vous avez une certaine connaissance du nombre de lignes que vous souhaitez trouver (dans ce cas cinq), il vous suffit de sélectionner les cinq maxima locaux avec les scores de Hough les plus élevés.
la source
La deuxième étape pourrait être d'affiner la position du pic à une précision inférieure au pixel. Cela peut être fait par un raccord parabole.
Le vecteur correcteur est alors
Les dérivées peuvent être calculées à partir de l'image de Hough par différenciation finie .
L'équation ci-dessus peut occasionnellement produire des décalages de plus de 1 pixel. Dans ce cas, le voisinage du maximiseur n'a pas de forme parabolique et vous pouvez ne pas vouloir faire la correction ou même supprimer le maximiseur candidat.
la source
Il y a une très bonne technique développée au milieu des années 80 par Gerig et Klein. Il s'agit d'une procédure de backmapping qui analyse l'espace de Hough pour identifier le point le plus probable associé à chaque point de bord, puis construit un deuxième espace de Hough où le mappage des points de bord aux paramètres est un à un plutôt qu'un à plusieurs qui est la première étape habituelle. Je n'ai pas la référence à portée de main, mais regardez dans le document de synthèse Hough d'Illingworth et Kittler (vers 1987?)
la source