Extraction de contours
1 Introduction.
En g´en´eral, les variations d’intensit´e dans une image correspondent `a des zones pertinentes.
Ces informations sont tr`es importantes pour les op´erations subs´equentes `a cette premi`ere phase.
Pour extraire de l’information de plus haut niveau, on doit d’abord avoir des informations de bas niveau (les contours).
Ces informations correspondent `a des fronti`eres de r´egions homog`enes dans l’image.
2 M´ ethodes d´ erivatives.
2.1 G´ en´ eralit´ es.
Fig.1 – Cas bidimensionnel
Dans le cas bidimensionnel, le vecteur gradient est d´efini au pointM(x, y) par :
−
→∇A(x, y) = t µ∂A
∂x.∂A
∂y
¶
−
→∇A(x, y) est normal `a la courbe de niveau donn´ee parA(x, y) =cstequi passe par M. Remarques :
– Le gradient est une d´eriv´ee
– Le laplacien est une d´eriv´ee seconde
Au pointM(x, y) l’orientation Φ du gradient est donn´ee par : Φ =arctan
̶A
∂y
∂A
∂x
!
et le vecteur unitaire~nnormal au contour :
~n= t(cosΦ.sinΦ) L’orientation du contour a pour expression :
θ= Π 2 −Φ
Fig.2 – Orientation du contour
La recherche des maximas locaux et des passages par 0 implique le calcul de d´eriv´ees direc- tionnelles.
La d´eriv´ee premi`ere directionnelle deA(x, y) suivant~n est donn´ee par :
∂A
∂n =−→∇A(x, y).~n=∂A
∂x.cosΦ +∂A
∂y.sinΦ La d´eriv´ee seconde est donn´ee par :
∂2A
∂n2 = ∂2A
∂x2.cos2Φ + 2. ∂2A
∂x.∂y.cosΦ.sinΦ +∂2A
∂y2.sin2Φ Le passage par 0 du laplacien est donn´e par :
4A(x, y) =∂2A
∂x2 +∂2A
∂y2 Et, selon les directions~net n~⊥ (n orthogonal), on a :
4A(x, y) = ∂2A
∂n2 + ∂2A
∂n2⊥ et
∂2A
∂n2⊥ =∂2A
∂x2.sin2Φ−2. ∂2A
∂x.∂y.cosΦ.sinΦ +∂2A
∂y2.cos2Φ
2.2 Principes g´ en´ eraux d’utilisation des m´ ethodes d´ erivatives.
2.2.1 Utilisation du gradient
– Calcul du gradient en chaque point de l’image – Cr´eation de l’image de la norme du gradient
– Extraction des maximas locaux dans la direction du gradient – Seuillage
2.2.2 Utilisation de la d´eriv´ee seconde
– Calcul de la d´eriv´ee seconde dans la direction du gradient
– Recherche du passage par 0 de la d´eriv´ee seconde dans la direction du gradient – Cr´eation de l’image des passages par 0 affect´ee `a la norme du gradient
– Seuillage
2.2.3 Utilisation du laplacien – Calcul du laplacien
– Recherche du passage par 0 du laplacien
– Cr´eation de l’image des passages par 0 affect´ee `a la norme du gradient – Seuillage
Les calculs du laplacien et des d´eriv´ees sont tr`es diff´erents lorsque l’on travaille en binaire. En effet, ils se r´esument `a des diff´erences.
L’´etape la plus dure `a aborder reste le seuillage.
2.3 Op´ erateurs d´ erivatifs du premier ordre
Fig.3 – Rep`eres
Pour une image num´erique, on a :
∂A
∂y =∆A
∆i =Ai[i, j] =A[i+ 1, j]−A[i, j]
∂A
∂x = ∆A
∆j =Aj[i, j] =A[i+ 1, j]−A[i, j]
La norme du gradient est :
|∇A[i, j]|= q
A2j[i, j] +A2i[i, j]
ou :
|∇A[i, j]|=max{Aj[i, j], Ai[i, j]}
2.3.1 Op´erateurs Prewitt et Sobel Aj[i, j] =hj∗A[i, j]
Ai[i, j] =hi∗A[i, j]
hj =
1 0 −1 c 0 −c 1 0 −1
(1)
hi =
1 c 1
0 0 0
−1 −c −1
(2)
Les matriceshj ethi sont appel´ees masques. Elles sont les noyaux de convolution de filtres `a r´eponse impulsionnelle finie.
Pour Prewitt, on prend c = 1. Pour Sobel, on prend c = 2.
Remarque : h∗A[i, j] =
XM
m=−M
XN
n=−N
h[m,1]A[i−m, j−n] =
−MX
m=M
X−N
n=N
h[−m,−n]A[i+m, j+n]
h : noyau de convolution de taille (2M+1)(2N+1) 2.3.2 Op´erateur de Kirsh
C’est un op´erateur `a 8 masques correspondant chacun `a une direction pr´ef´erentielle et obtenue par rotation deπ/4 de l’op´erateur de baseh0.
h0 =
5 5 5
−3 0 −3
−3 −3 −3
(3)
ω0 = 1 15
−3 −3 5
−3 0 5
−3 −3 5
(4)
ω45 = 1 15
−3 −3 −3
−3 0 5
−3 5 5
(5)
ω90 = 1 15
−3 −3 −3
−3 0 −3
5 5 5
(6)
ω135 = 1 15
−3 5 5
−3 0 5
−3 −3 −3
(7)
2.3.3 Op´erateurs MDIF et NAGDIF
Ces deux op´erateurs sont la combinaison d’un lissage et d’une d´erivation.
a. MDIF : filtre moyenneur + d´erivateur de PREWITT
m =
0 1 0
1 1 1 0 1 0
(8)
h0 =
1 1 1
0 0 0
−1 −1 −1
(9)
h1 =
1 0 −1 1 0 −1 1 0 −1
(10)
mj = m∗h2=
0 1 0 −1 0
1 2 0 −2 −1
1 3 0 −3 −1
1 2 0 −2 −1
0 1 0 −1 0
(11)
mi = m∗h1=
0 1 1 1 0
1 2 3 2 1
0 0 0 0 0
−1 −2 −3 −2 −1
0 1 1 1 0
(12)
Aj=A∗mj(imaged0origine) Ai=A∗mi
b. NAGDIF : lissage + d´erivation Lissage : lissage bas´e sur un masque 5x5
D´erivation : contour simax{|B[i, j]−B[i−²1, j−²2]|}> seuil
²1 et²2 sont des valeurs enti`eres comprises entre -1 et 1 et B est l’image liss´ee.
2.4 Op´ erateurs d´ erivatifs du second ordre
Les contours peuvent ˆetre localis´es par le passage par 0 du laplacien.
∆A(x, y) = ∂2A
∂x2 +∂2A
∂y2 Ce qui donne, en coordonn´ees polaires :
∆A(r,Θ) = ∂2A
∂r2 +1 r
∂A
∂r + 1 r2
∂2A
∂Θ2 2.4.1 Op´erateur laplacien sur un voisinage r´eduit
Au voisinage de 3x3, on a :
toto=
0 −1 0
−1 4 −1
0 −1 0
par approximation dirrecte du laplacien.
2.4.2 Op´erateur de Marr et Hildreth [Marr80]
SoitA(x, y) l’image `a traiter etB(x, y) l’image r´esultat.
MH = lissage par un filtre gaussien g(x,y) + calcul de la d´eriv´ee seconde dans la direction de
~ndu gradient et on recherche le passage par 0.
L’image B sera d´efinie par :
B(x, y) = ∆(A∗g(x, y))
ce qui revient `a appliquer directement sur l’image A(x, y) l’op´erateur ∆g(x, y).
Concr`etement, ∆g(x, y) est approch´ee par la diff´erence de deux gaussiennes : DOG.
DOG(x) = 1
σ√
2πexp− x2
2σ2 − 1 σi
√2πexp− x2 2σ2i σi = σ+∂σ
√2πDOG(x) = 1
σexp− x2
2σ2 − 1
σ+∂σexp− x2 2(σ+∂σ)2 p2πDOG(x) = ∂σ ∂
∂σ µ1
σexp− x2 2σ2
¶
p2πDOG(x) = − µ 1
σ2 −x2 σ4
¶
exp−x2 2σ2
Or, commeg est gaussienne, µ 1
σ2−−x2 σ4
¶
exp−x2
2σ2 = ∂2g(x)
∂x2 2.4.3 Op´erateur de Huertas [Huer86]
∆g(x, y) = 1 G0
µ
2−x2+y2 σ2
¶
exp(−x2+y2 2σ2 ) G0est un coeficient de normalisation.
∆g(x, y) =g1(x)g2(y) +g2(x)g1(y) avec
g1(x) = 1
√2G0
µ 1−x2
σ2
¶
exp−x2
2σ2 (gaussienne) g2(x) = 1
√2G0
exp− x2
2σ2 (lissage)
Remarque :Dans la pratique, cet op´erateur est un filtre num´erique `a r´eponse impulsionnelle finie (RIF).
2.5 Approche par filtrage optimal
Dans ce paragraphe, le contour est mod´elis´e par un ´echelon d’amplitude U0 noy´e dans un bruit blanc.
2.5.1 Approche de Canny [Canny86]
Filtre optimal de r´eponse impulsionnelleh(x) qui satisfait les trois contraintes suivantes : – Bonne d´etection
– Bonne localisation – R´eponse unique
Soit A(x) un signal mono-dimensionnel repr´esentant un saut d’amplitude U0 noy´e dans un bruit blanc stationnaireN(x2) de moyenne nulle et de densit´e sp´ectraleNO2.
A(x) =U0U(x) +N(x) Le signal de sortie est :
C(x) =A∗h(x) = Z ∞
−∞
A(t)h(x−t)dt
Probl`eme : comment trouver h(x) ? Il faut que C(x) soit maximum au point x=0 en respectant les 3 contraintes pr´ec´edentes.
Bonne d´etection :Le rapport RSB doit ˆetre maximis´e.
RSB= U0
R∞
0 h(x−t)dt
· E
µ¯¯
¯R∞
−∞N(t)h(x−t)dt
¯¯
¯2
¶¸1
2
= U0
R∞
0 h(x−t)dt N0
hR∞
−∞h2(t)dt i1
2
Bonne localisation :Les points d´et´ect´es doivent ˆetre aussi pr`es que possible du centre du contour v´eritable (`a maximiser)
U0 N0
|h0(0)|
hR∞
−∞h02(t)dti1/2
Unicit´e de la r´eponse :On utilise le crit`ere de Canny. On veut minimiser la densit´ed0des pasages par 0 de la r´eponse du bruit.
Crit`ere g´en´eralis´e :
d0= 1 π
" R∞
−∞h002(t)dt R∞
−∞h02(t)dt
#1
2
Crit`ere de Canny :
d0= 1 π
" RM
−Mh002(t)dt RM
−Mh02(t)dt
#12
h(x) est un RIF d´efini sur l’intervalle [−M, M] Canny a d´efini les conditions aux limites suivantes :
– h(0) = 0 – h(M) = 0
– h’(0) = S (pente `a l’origine) – h’(M) = 0
La fonctionh(x) est solution de l’´equation diff´erentielle suivante : 2h(x)−2λ1h00(x) + 2λ2h0000(x) Solution g´en´erale :
h(x) =a1expαxsinωx+a2expαxcosωx avec
λ2−λ21
4 > 0 α2−ω2 = λ1
2λ2
4α2ω2 = λ21−4λ2
4λ22