u Sujets –Détection des droites –Transformée de Hough (espace paramétré) *avec la pente et...
-
Upload
aimee-garnier -
Category
Documents
-
view
106 -
download
2
Transcript of u Sujets –Détection des droites –Transformée de Hough (espace paramétré) *avec la pente et...
Sujets– Détection des droites
– Transformée de Hough (espace paramétré)* avec la pente et l’ordonnée à l’origine
* avec la normale et l’angle
– Détection des droites dans l’espace transformé
– Détection des cercles/ellipses Lectures: Notes de cours
PIF-6003Sujets spéciaux en informatique I
Détection des droites
Si nous avons une image binaire dont les pixels avec une valeur de niveau de gris à PIXMAX font partis de segments de droites– La détection des droites pourrait être effectuée en:
* Déterminant l’ensemble des droites potentielles
)(
2
)1( 22 nO
nnC n
* Chercher les points proches de chaque droite potentielle=> n3 comparaisons
Figure 7.15 [rf. GONZALEZ, p. 434]
Transformée de Hough (avec la pente et l’ordonnée à l’origine)
Figure 7.16 [rf. GONZALEZ, p. 435]
Représentation discrète d’un espace paramétré : transformée de Hough
Tableau de compteurs de points colinéaires
Figure 7.16 [rf. GONZALEZ, p. 435]
Représentation discrète d’un espace paramétré : transformée de Hough
Image contenant deux segments de droite Représentation du tableau de compteurs
(a) (b)
Transformée de Hough (avec la pente et l’ordonnée à l’origine)
Faiblesse – Pour a -> => droite verticale b -> – Difficile à représenter dans l’espace paramétré
Figure 7.17 [rf. GONZALEZ, p. 436]
Transformée de Hough (avec la normale et l’angle)
Transformée de Hough (avec la normale et l’angle)
Forme normale de la droite
= x cos + y sin L’espace paramétré est borné par:
-(H2+L2)1/2, (H2+L2)1/2H: Hauteur de l’image
L: Largeur de l’image
-/2,/2
Figure 7.18 [rf. GONZALEZ, p. 437]
Transformée de Hough (exemples)
Espace paramétré {où s’étend de ± 90°
et de ± 2D}
Image avec5 points spécifiques
A
B
Espace paramétré ( A relie les pts 1, 3 et 5
et B les pts 2, 3 et 4 )
Espace paramétré ( inversion des signes
de et à ± 90° )
Transformée de Hough (avec la normale et l’angle)
Algorithme général– Effectuer la transformée de Hough
* Pour chaque pixel à PIXMAX Calculer les droites chacune paramétrées , pouvant passer par ce
pixel Faire la mise à jour des compteurs de points colinéaires (espace
paramétré) aux positions ,
– Détecter les droites* Parcourir l’espace paramétré et déterminer si le nombre de
points colinéaires dépasse un seuil fixé par l’usager
Figure 7.14 [rf. GONZALEZ, p. 433]
Détection des droites dans l’espace transformé (exemples)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des droites dans l’espace transformé (exemple OpenCV: houghlines.c)
Détection des cercles
Expression du cercle en coordonnées polaires
sin
cos
ryy
rxx
c
c
L’espace projeté est paramétré par xc et yc donnés par
sin
cos
ryy
rxx
c
c
Détection des cercles
Algorithme général– Effectuer la transformée de Hough (cercle de rayon r)
* Pour chaque pixel à PIXMAX Calculer les centres des cercles donnés par xc,yc pouvant contenir ce
pixel Faire la mise à jour des compteurs des centres de cercle (espace
paramétré) aux positions xc,yc
– Détecter les cercles* Parcourir l’espace paramétré et déterminer si le nombre de
points cocirculaires dépasse un seuil fixé par l’usager
Détection des cercles (Exemple)
Image monnaie
Détection des ellipses (Exemple)
(ex: findThresholdFaceNIR.c)
Détection des ellipses (Exemple)
(ex: findThresholdFaceNIR.c)
Détection des ellipses (Exemple)
(ex: findThresholdFaceNIR.c)
//
Détection des ellipses (Exemple)
Extraction des contoursà partir de l’image seuillée
Détection des ellipses (Exemple)
(ex: findThresholdFaceNIR.c)
Détection des ellipses (Exemple)
Extraction des contours et ellipses à partir de l’image seuillée
Détection des ellipses (Exemple)
• Si nous avons N points d’un contour p1 …. pN dans une images et pi = [xi, yi]T. Posons x = [x2, xy, y2, x, y, 1]Tet p = [x, y]T, alors nous pouvons écrire:
• Cette forme générale d’une ellipse est caractérisée par le vecteur de paramètres a = [a, b, c, d, e, f]T. L’approximation d’un contour par une ellipse revient à trouver un vecteur a0 qui approxime le mieux les points pi
d’un contour au sens des moindres carrés, et qui est la sol’n de:
D() est une fonction distance
Détection des ellipses (Exemple)
• En utilisant la distance algébrique le problème de minimisation de moindre carré précédent devient linéaire et peut être résolu de façon directe sous la forme:
• Pour éviter la sol’n triviale a = 0 nous devons imposer une contrainte sura avec la matrice C (constraint matrix):
Détection des ellipses (Exemple)
• Ensuite, nous pouvons réécrire la fonction de minimisation basée sur la distance algébrique sous la forme:
• Avec X la matrice (design matrix) de la forme suivante et S = XTX (scattering matrix):
Détection des ellipses (Exemple)
• Le vecteur a0 optimal correspond au vecteur propre associé à la seule valeur propre négative découlant du système suivant :
Algorithme:1) Créer la matrice X à partir des point pi = [xi, yi] d’un contour2) Calculer la matrice S = XTX3) Créer la matrice C4) Calculer les valeurs propres du système précédent et trouver la valeur propre négative n à laquelle est associée le vecteur propre optimal a0
Détection des ellipses (Exemple)
• Exemples d’approximation découlant de l’application de l’algorithme précédent:
Bruit de contour gaussien croissant
Détection des ellipses (Exemple)
• Exemple de programme OpenCV (RTGazeTracking.c):
Création de la matrice de contraintes C
Détection des ellipses (Exemple)• Exemple de programme OpenCV (RTGazeTracking.c) (suite ….):
Création de la matrice X
Détection des ellipses (Exemple)• Exemple de programme OpenCV (RTGazeTracking.c) (suite ….):
Détection des ellipses (Exemple)• Exemple de programme OpenCV (RTGazeTracking.c) (suite ….):
Détection des ellipses (Exemple)• Exemple de programme OpenCV (RTGazeTracking.c) (suite ….):
Résumé
Segmentation des images par détection des droites– Détection des droites
– Transformée de Hough
– Détection des droites dans l’espace transformé
– Détection des cercles/ellipses