Download - 05 Contours
Traitement d'imagesDtection de contoursAlain Boucher - IFI
Qu'est-ce qu'un contour ?Un contour est une variation brusque d'intensit
Source : Gluckman & Wong. Computer Vision/Scene Analysis course (CS664). Polytechnic Univ.
2
Qu'est-ce qu'un contour ?
3
Dfinition du contour
Par dfinition, un contour est la frontire qui spare deux objets dans une image.
Une discontinuit de limage
Dans notre cas, nous dtecterons toutes les lignes marquant des changements dintensit
Pas seulement les contours ! Abus de langage sur la notion de contours !
4
Lignes/contours dans une imageExemples de dtection des discontinuitsde profondeur dorientation de surface
de rflectance dillumination
Source : Jacques-Andr Landry. Vision robotique. ETS.
5
Diffrents types de contours
Marche d'escalier
Rampe
Toit
Source : Gonzalez and Woods. Digital Image Processing 3ed. Prentice-Hall, 2008.
6
Contour avec un peu de bruit
7
ou beaucoup de bruit
8
Drive dune imageLa premire drive de l'image est l'oprateur de base pour mesurer les contours dans l'image
Source : Gluckman & Wong. Computer Vision/Scene Analysis course (CS664). Polytechnic Univ..
9
Drive dune image et contoursImage 1D f(x)Niveau de gris
x
1re drive f'(x)
|f'(x)|
seuil
Pixels contours: |f'(x)| > Seuil10
Drive discrteOn utilise la premire drive de limage pour les contours :
I I x xI x = x xApproximation simple de la drive discrte :-1 1 -1 1
ou encore :
-1 -1 0 1 0 111
Filtre de Roberts
Roberts (1965) fournit une premire approximation de la premire drive d'une image discrte Le calcul se fait avec 2 masques de convolution pour les 2 directions de la drive
Gx
Gy12
Filtres pour la dtection de contoursPlusieurs autres filtres existent pour la dtection des contours dans limage On fait lissage de limage + drive de limage (sauf Roberts) Il existe beaucoup dautres filtres pour dtecter les contoursCVIPTools : Analysis>Edge/Line Detection
Roberts:
1 0 0 -1 -1 -1 -1
0 1 -1 0 -1 -1 -1 -1 -2 -1 0 0 0 0 0 0 1 1 1 1 2 113
Prewitt:
0 1
0 1
0 1
-1 -2 -1
Sobel:
0 1
0 2
0 1
Lissage + drive de limageFiltre de Prewitt : Moyenneur + Drive
1 0 1 1 1 0 1 = 1 1 0 1 1 0 1 1
1 1 1 1 0 0 0 = 0 1 1 1 1 1 1 1
Filtre de Sobel : Gaussienne + Drive
1 0 1 1 2 0 2 = 2 1 0 1 1 0 1 1
1 2 1 1 0 0 0 = 0 1 2 1 1 2 1 114
Dtection des contours moins sensible au bruit
Gradient de limage
En 2 dimensions, nous parlons de gradient de limage
drive en X + drive en Y
vecteur avec une norme et une direction
Les lignes bleues reprsentent le gradient de couleur du plus clair vers le plus foncSource : Gradient. Wikipdia (fr).15
Gradient : norme et directionNorme : Intensit du gradient en chaque pixel (mesure la plus utilise)
G= Gx Gy GxGy2 2Direction : Direction du gradient le plus fort en chaque pixel
=arctan Gy /Gx 16
Exemple de dtection de contoursf xContours verticaux
f yContours horizontaux
f y
+
f x
Norme
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
17
Exemples de dtections de contourssobel roberts
prewitt
isotropic
18
Seuillage du gradientDtection avec Sobel sans seuillage
Seuillage avec S=25
Seuillage avec S=60
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montral.
19
Deuxime drive de limageLaplacien
20
Deuxime drive de l'image
Une autre approche pour trouver les contours de l'image est d'utiliser la seconde drive de l'image Pour cela, on utilise le Laplacien comme oprateur
I I I= 2+ 2 x y2
21
Drives de l'image
Les contours correspondent :
Aux maxima de la premire drive Aux passages par zros de la deuxime drive
22
Drives de l'image2
1 0.81
f x , y =e
x 10/ 2
0.60
Image
0.4 0.2-1
-2
-1
1
2
-2 -2 2 -1 0 1 2
f x f x22
3 2 10 1
Premire drive
-2
-1 -1
1
2-1
-2 -3-2 -2 2 -1 0 1 2
201
100
Deuxime drive
-2
-1 -10
1
2-1
-2 -2 -1 0 1 2
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montral.
23
Exemple avec un contour rampe Dtection de la frontirePremire drive
Deuxime driveFonc Clair Passage zro24
Drives de l'image
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
25
Laplacien par convolution
Plusieurs approximations discrtes du Laplacien existent
[ ]0 1 0 1 4 1 0 1 0
ou
[ ]1 1 1 1 8 1 1 1 126
Une seule matrice de convolution Symtrique en rotation
CVIPTools : Analysis>Edge/Line Detection>Laplacian
Comparaison Gradient / Laplacien
Gradient
Laplacien
27
Quel filtre choisir pour les contours ?
Aucun oprateur n'est parfait pour dtecter les contours En pratique, on obtient des contours incomplets
il y a des pixels superflus il y a des manques il y a des erreurs de position et d'orientation des pixels contours
Chacun semble avoir sa prfrence pour une mthode ou une autre Un oprateur de dtection de contour n'est qu'une premire tape dans la chane de segmentation28
Approche globale pour les contoursTransforme de Hough
29
Approche globale pour les contours
Il existe des approches globales pour les contours
On ne recherche pas seulement des pixels contours On cherche le contour au complet
On cherche plusieurs pixels correspondant un contour
Comment dfinir le contour ? Problme ?
Diffrentes techniques
Ici : Transforme de Hough
CVIPTools : Analysis>Edge/Line Detection>Hough
30
Transforme de Hough
Approche globale pour dtecter des contours continus
Du plan x-y au plan paramtrique a-b
Plan x-y
yi = a xi + b Une infinit de lignes passent par (xi, yi) Une seule ligne pour la paire (a,b)
Plan paramtrique a-b
b = - x i a + yi Une seule ligne pour la paire (xi, yi) Une infinit de lignes passent par (a,b)31
Plan x-y vs Plan a-bPlan x-y Plan paramtrique a-b
yi = a xi + b
b = - xi a + yi32
Droites vs PointsTous les points (x,y) sur une ligne du plan x-y passent par un seul point (a, b) dans le plan paramtrique a-bPlan x-y Plan paramtrique a-b
y i = a xi + b
b = - xi a + yi
33
Principe de la transforme de Hough
Cellules d'accumulation - Matrice (a,b) On construit une image des votes
chaque point permet de voter pour une droite particulire
Les droites recevant le plus de votes sont conserves
34
Calcul de la transforme de Hough
On calcule le gradient de limage originale
Sobel, Prewitt, Canny,
Pour chaque point du gradient, on calcule une droite (a,b)
On obtient une droite dans le plan a-b pour chaque pixel (x,y)
Les pics maximum dans le plan paramtrique a-b indiquent les droites avec le maximum de points du plan x-y
Les points de croisement des droites dans le plan a-b indiquent les vraies droites existantes dans le plan x-y
35
Problme avec un espace (a,b)
Problme : pour une droite verticale, b= ! Solution : reprsentation sous forme polaire (,) = x cos + y sin
= 90
36
Exemple avec 5 pointsC 1 2 2
3
D
A 3
E
1
4 4 5
B F 5
Image contenant 5 points
Transforme de HoughSource : Gonzalez and Woods. Digital Image Processing 3ed. Prentice-Hall, 2008.37
Transforme de Hough (points)
La transforme de points alatoires ne donne rien de prcis38
Transforme de Hough (droite)La transforme de points aligns permet de retrouver la droite
39
ExempleImage Gradient
Hough
Final
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
40
Autre exempleImage Canny
Hough Droites
Final
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall 3ed, 2008.
41
Rfrences
(voir aussi la page web du cours)
Gradient. Wikipdia (fr). (page consulte le 2 avril 2009).
http://fr.wikipedia.org/wiki/Gradient
Caroline Rougier. Cours de Traitement d'images (IFT2730). Universit de Montral (Canada)
http://www-etud.iro.umontreal.ca/~rougierc/ift2730/ Chap10 : Filtrage : lissage, rhaussement d'images, dtection de contours : http://www-etud.iro.umontreal.ca/~rougierc/ift2730/cours/Cours10_IFT2730_2008_2.pdf
42