PANDORE Version 6 | GREYC-IMAGE |
L'opérateur phoughlines permet de détecter des droites sur une image de contours. L'image d'entrée im_in doit être une image de contours pour être exploitable par l'opérateur. L'image de sortie im_out contient les droites correspondant aux segments de droites détectés dans l'image initiale im_in.
Principe de la transformée de Hough :
La méthode de Hough permet de reconnaître des équations géométriques dans une image.
Pour cela, on utilise un accumulateur qu'on appelle l'"espace de Hough" qui est un tableau qui a
autant de dimensions que l'équation de la forme géométrique recherchée a de
paramètres.
Pour détecter les droites, on considère l'équation générale des droites :
rho = x*cos(theta) + y*sin(theta).
où rho est la perpendiculaire à l'origine et theta l'angle avec la normale.
On parcourt alors chaque point du contour de l'image et on recherche pour ce point toutes les équations de droites auxquelles peut appartenir ce point. Les paramètres de l'équation donnent une coordonnée dans l'espace de Hough que l'on incrémente. Ainsi, les valeurs de l'accumulateur définissent un nombre de vote pour chaque coordonnée. Puis on recherche dans l'accumulateur les paramètres qui ont réuni le maximum de vote, c'est eux qui donneront les paramètres de l'équation qui ont été la plus vérifiée. Il ne reste donc plus qu'à dessiner dans l'image de sortie la forme correspondant à l'équation trouvée.
L'algorithme revient à :
Pour chacune des lines droites faire:
Pour contourner le problème des "lignes fantômes" dues à la discrétisation des points de contour, la suppression du maximum se fait en supprimant tous les points de contour de la droite détecté dans l'image initiale ainsi que ceux des lignes qui sont à distance inférieure à linetickness, puis par recalcul de l'accumulateur (en fait une version améliorée de cette solution).
Retourne le nombre de lignes détectées.
Extrait les lignes droites à partir d'un ensemble de contours obtenus par une simple détection de contours :
psobel tangram.pan b.pan pbinarization 45 1e30 b.pan c.pan pskeletonization c.pan d.pan ppostthinning d.pan e.pan phoughlines 20 0 180 2 e.pan f.pan pimg2imc 0 f.pan c.pan c.pan out.pan
Auteur: Laurent Quesnel