traitement dimages : concepts fondamentaux définitions fondamentales et prétraitements : –...
Post on 03-Apr-2015
107 Views
Preview:
TRANSCRIPT
Traitement d’images : concepts fondamentaux
• Définitions fondamentales et prétraitements : – Information représentée par un pixel,– Manipulation d’histogrammes : égalisation,– Filtrage passe-bas.
• Introduction à la morphologie mathématique (cas binaire) :
– Erosion, dilatation, ouverture et fermeture binaires,– Reconstruction géodésique, étiquetage en composantes connexes,– Squelette.
• Détection de contours :– filtrage passe-haut, filtrage optimal,– traitement des contours : fermeture, transformée de Hough.
• Introduction à la classification (cas pixelique) :– algorithme des k-ppv, des c-moyennes– critères bayésiens : MV, MAP.
Détection de contours :approche générale
• Objectif– Délimitation des objets– Détection de points d’intérêt
• Méthodes dérivatives– À partir du gradient ( vecteur 2D), calcul de sa norme
et de sa direction– Approximation de la dérivée 2nde par le Laplacien
Contour = là où réside l’information au sens entropique
-0,2
0
0,2
0,4
0,6
0,8
1
1,2
0 5 10 15-0,1
0
0,1
0,2
0,3
0,4
0,5
0,6
0 5 10 15-0,4
-0,3
-0,2
-0,1
0
0,1
0,2
0,3
0,4
0,5
0,6
0 5 10 15
f(x) f’(x) f’’(x)
2
2
2
2
y
I
x
I
Principe des méthodes dérivatives
Utilisation du gradientCalcul de l’image du gradient
Calcul de l’image de la norme du gradient
Calcul de l’image de la direction du gradient
Seuillage (avec hystérésis) de l’image de la norme du gradient
Elimination des non maxima locaux dans la direction du gradient
Fermeture des contours
Utilisation du laplacienCalcul de l’image du laplacien
Calcul de l’image de la norme du gradient
Calcul de l’image binaire Iz des passages par zéro du laplacien
Application du masque binaire Iz à l’image de la norme du gradient
Seuillage (avec hystérésis) de l’image de la norme du gradient |Iz
Elimination des non maxima locaux dans la direction du gradient
Fermeture des contours
Laplacien trop bruité pour être utilisé seul
par filtrage linéaire passe-haut
01010
12021
13031
12021
01010
533
503
533
553
503
333
• Gradient
Sobel c=2Prewitt c=1
Opérateur MDIF
Filtres de Kirsch : 8 masques
11
000
11
c
c
101
0
101
cc
01110
12321
00000
12321
01110
Rq : les filtres sont donnés pour des directions lignes – colonnes cas
de directions diagonales :
01
101
10
c
c
c
c
10
101
01
555
303
333
333
503
553
333
303
555
333
305
355
335
305
335
355
305
333
La direction du gradient est l’argument du masque qui maximise la norme du
gradient à /8 près • Masque MDIF plus grand moins sensible au bruit
mais localisation des contours moins bonne• Il existe aussi des généralisations de Sobel à des tailles
(2d+1)(2d+1) : MX(i,j)=d/(|i|+|j|)(-i)/|i|, (i,j)[-d,d]2
par filtrage linéaire passe-haut
111
181
111
010
141
010
• Laplacien
4-connexité 8-connexité
1 filtre passe haut extrait l’information ‘complémentaire’ d’un filtre passe-bas : Id = MPB+MPH
Ex :
111
181
111
9
1
111
111
111
9
1
000
090
000
9
1Coef. généralemt
omis pour amplifier le résultat
par filtrage optimal (I)• Critères de Canny
(i) Bonne détection, (ii) bonne localisation, (iii) faible multiplicité des maxima dus au bruit
Filtre impulsionnel à réponse finie (RIF)
• Filtre de Deriche : RII
Dérivée directionnelle en x = Image*h(x)*f(y)Dérivée directionnelle en y = Image*h(y)*f(x)
• Filtre de Shen - Castan
yfxheyexyxf yxX ..1...
4,
3
xfyhexeyyxf xyY ..1...
4,
3
Filtre de lissage puis application d’un opérateur
différentiel
xfxfyfex
xeyxf xy
X 12
2...
2..
2,
yfyfxfey
yeyxf yx
Y 12
2...
2..
2,
Maximiser le rapport signal à bruit
Minimiser la variance de l’erreur en distance
Solution de Canny : RIF(x) = a1excosx + a2exsinx + a3e-xcosx +a4e-xsinx
Solution de Deriche : RII(x) = Cst/.ex|.sinxSoit m / m.=, alors m>>1 (x) h(x) = -2.x.e-|x|
Lissage dans la direction perpendiculaire à celle de h par le filtre intégrateur de h : f(y) = .(.|y|+1).e-|y|
(f’(y) = ..signe(y).e-|y|+.(.|y|+1).(-.signe(y)).e-|y| = h(y))
Solution de Shen et Castan : RIIf(x) = be-x|, f1(x) = e-x.u(x), f2(x) = .e-(-x).u(-x)
par filtrage optimal (II)• Implantation du filtre de dérivation de Deriche
Décomposition entre 1 partie causale et 1 anti-causale
R1[i]=c.e-.I[i-1]+2.e-.R[i-1]-e-2.R[i-2]
R2[i]=-c.e-.I[i+1]+2.e-.R[i+1]-e-2.R[i+2]
R[i]=R1[i]+ R2[i]
• Implantation du filtre de lissage de Deriche Décomposition entre 1 partie causale et 1 anti-causale
R1[i]= b.I[i]+ b.e-.(-1).I[i-1]+2.e-.R[i-1]-e-2.R[i-2]
R2[i]= b.e-.(+1).I[i+1]-b.e-2.I[i+2]+2.e-.R[i+1]-e-2.R[i+2]
R[i]=R1[i]+ R2[i]
0 si0
0 si..
i
ieicih
i
0 si..
0 si0
ieic
iih i
221
11
...21
..
zeze
zeczh
22 ...21
..
zeze
zeczh
221
11
...21
.1.1
zeze
zebzf
22
22
...21
..1.
zeze
zezebzf
e
ec
21
2
2
.21
1
ee
eb
Partie causale : h-(i)=c.i.e-i.u(i)TZ[u(i)] = 1/(1-z-1) |z|>1TZ[ai.x(i)] = X(z/a) TZ[e-iu(i)] = 1/(1-e-z-1)TZ[ik.x(i)] = (z.d/dz)X(z) TZ[ie-iu(i)] = e-z-1/(1-e-z-1)2
Partie anti-causale : h+(i)=(-c).(-i).e(-i)(-).u(-i)
Partie causale : f-(i)=b.(i+1).e-i.u(i)TZ[f-(i)] = b..e-z-1/(1-e-z-1)2+ b/(1-e-z-1)
Partie anti-causale : f+(i)=[b.(-i).e(-i)(-)+ b.e(-i)(-)-b(-i)].u(-i)TZ[f-(i)] = b..e-z/(1-e-z)2+ b/(1-e-z)-b
Exemples de et .
B1
|| MM (B1)
B2
|| MM (B2)|| Prewitt
|| Sobel || MDIF
MM (B1) MM (B2) masque
Deriche =1
Deriche =2
Deriche =3
Shen =0.5 Shen =1
Détection de contours (I) Seuillage avec hystérésis
– Détection des pixels de valeur ≥ sh
– Ajout des pixels de valeur ≥ sb et qui 1 composante connexe ayant au moins 1 pixel de valeur ≥ sh
– Programmation avec 1 pile gérant la composante connexe :1. initialisation de l’image des contours ImaCont à 02. Initialisation de la pile P avec les pixels / ≥ sh
3. Tant que |P|>0a. Extraire M(xM,yM) de la pile
b. ImaCont(xM,yM) 1
c. Pour chaque k-connex (k=4 ou 8) voisin de M, noté VM :
Si VM P et si ImaCont(xVM,yVM
) 1 et si ≥ sb,
alors ajouter VM à P
MV
Détection de contours (II)Détection des maxima locaux de la norme du
gradient dans la direction du gradient
Cas
soit A0=(i,j), A1=(i,j+1), A2(i-1,j+1)
on cherche zM = 1A1+2A2 avec 1+2=1,
(1,2)[0,1]2
alors 2=tan et 1=1-tan
donc
Autres cas :
2;
4
4;0
0;
4
4;
2
1,1.tan1,.tan11 jijiM
1,1.tan1,.tan12 jijiM
(i,j-1) (i,j) (i,j+1)
(i+1,j-1)
(i-1,j+1)
Fermeture de contours• Construction d’1 « look-up table » permettant
d’indexer les pixels candidats à la fermeture pour chaque configuration.Codage configuration : où xi=1 si contour, 0 sinon
Ex. T[16][0]=1 ; T[136 ][0]=0 ; T[8][0]=1T[16][j]={1,0,7} ; T[8][j]={0,7,6}
• Algorithme de fermeture : – Pour chaque extrémité trouvée lors du balayage de
l’image :• Construction du sous-arbre de tous les chemins possibles
de longueur p et du coût associé à chaque nœud : somme des normes des gradients en chaque point du chemin
• Sélection du nœud de coût maximum• Prolongation du contour
12304765
12304765
12304765
7
0
2.i
iixV
T[i][0] =1 si contour à prolonger (i[0,255])T[i][j] avec j[1,3] donne les coordonnées relatives des 3
pixels candidats à la fermeture
i.e. pixel / T[i][0] =1
3p chemins
Exemple
Prewitt Sobel MDIF masque
Deriche =1
Deriche =2
Deriche =3
Shen =0.5 Shen =1
Après fermeture
de contours
Transformée de Hough• Utilisation d’information a priori pour
reconnaître le type d’objets recherchés et leur représentation
• Principe : – Les objets recherchés sont décrits à l’aide de
fonctions simples modélisées par leurs paramètres
Ex.: segments de droites, arcs de cercles
– La transformée de Hough permet de passer de l’espace image à l’espace des paramètres pour rechercher dans cet espace les objets d’intérêt
Transformée de Hough : cas de la recherche de droites (I)
• Représentation d’une droite : y = ax + b – Dans l’espace image I, x et y sont les variables (colonne et
ligne) et (a,b) est un couple de paramètres fixes pour une droite donnée
– Dans l’espace des paramètres P, a et b sont les variables et (x,y) est un couple de paramètres fixes pour un pixel donné
Par un point de I passe une infinité de droites, représentées par une droite dans P (b=ax–y), et
A chaque point de P correspond une droite de I
P
Q
x
yI
DP
DQ
a
bP
Algo : 1. calculer, pour chaque point du
contour dans I, la droite lui correspondant dans P ;
2. Incrémenter les valeurs le long de cette droite ;
3. déterminer le ‘point d’accumulation’ dans P
Hors cas x = Cst
Transformée de Hough : cas de la recherche de droites (II)
• Représentation d’une droite : x.cos + y.sin = r0 avec 0 < r0 < diagonale de l’image, et 0 < < 2
Espace des paramètres (r0,)
A chaque point de I correspond une courbe dans P, et une intersection de courbes dans P correspond à une droite dans I
r0/r = |cos (-)| (droite perpendiculaire en M0(r0,) à la droite radiale = pente -/2)
Droite de paramètres (r0,) d’éq. r = r0.sec(-)
r0 = r.cos().cos()+ r.sin().sin()
r0 = x.cos()+ y.sin()
r0
M(r,)
r
M0(r0,)
-/2
Transformée de Hough : cas de la recherche de cercles
• Représentation d’un cercle : (x–a)2 + (y-b)2 = r A un point de I correspond une surface dans P , et P représenté sous forme d’un tableau 3D (a,b,r) Si on se donne un rayon (en pixels) et un % de pixels
devant appartenir à la circonférence du cercle, on peut en déduire le seuil dans P (en nombre de pixels ayant voté pour un cercle (a,b,r) )
a
b
r = r2
r3
r2
r1
Intensité fct du % d’intersection de l’ellipse et du cercle de rayon r
Bibliographie
• H. Maître, Le traitement des images, Hermès éditions.
• J.-P. Cocquerez & S. Philipp, Analyse d’images : filtrage et segmentation, Masson éditions.
• S. Bres, J.-M. Jolion & F. Lebourgeois, Traitement et analyse des images numériques, Hermès éditions.
top related