u Sujets –Détection des droites –Transformée de Hough (espace paramétré) *avec la pente et...

Preview:

Citation preview

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

Recommended