Académique Documents
Professionnel Documents
Culture Documents
approche générale
• Objectif
– Délimitation des objets
– Détection de points d’intérêt
• Méthodes dérivatives
– À partir du gradient ( ∇ vect. 2D), norme et direction
∂ 2I ∂ 2I
– Approximation de la dérivée 2nde par le Laplacien ∆ = 2 + 2
∂x ∂y
1,2 0,6 0,6
0,5
1 0,5
0,4
0,8 0,4 0,3
0,3 0,2
0,6
0,1
0,4 0,2 0
-0,2
0 0
-0,3
0 5 10 15 0 5 10 15
-0,2 -0,1 -0,4
0 1 0 −1 0 0 1 1 1 0
1 2 0 − 2 −1 1 2 3 2 1
Opérateur MDIF 1 3 0 − 3 −1 0 0 0 0 0
1 2 0 − 2 −1 − 1 − 2 − 3 − 2 −1
0 1 0 −1 0 0 −1 −1 −1 0
• Masque MDIF plus grand → - sensible au bruit mais localisation des contours - bonne
• Il existe aussi des généralisations de Sobel à des tailles (2d+1)×(2d+1)
1 0 0 0 1 1 1 1 1 −1 −1 −1
Ex : 0 9 0 = 1 1 1 + −1 + 8 −1
9 0 0 0 9 1 1 1 9 −1 −1 −1
Coef. généralemt omis
pour amplifier le résultat
• Ex.:
∇ par filtrage optimal (I)
Maximiser le rapport
• Critères de Canny signal à bruit
(i) Bonne détection, (ii) bonne localisation, (iii) faible multiplicité des maxima dus au bruit
⇒ Filtre impulsionnel à réponse finie (RIF) Minimiser la variance de l’erreur en distance
−α −1 e −α
−αi
h− ( i ) = c .i .e si i ≥ 0 ⇒ h z −1 =
si i < 0 − ( ) c .e .z
−α −1 − 2α − 2 ⇒ R1[i]=c.e .I[i-1]+2.e .R[i-1]-e .R[i-2]
-α -α -2α
0 1 − 2.e .z + e .z
0 si i ≥ 0 − c .e −α .z
h+ ( i ) = αi ⇒ h+ ( z ) = ⇒ R2[i]=-c.e-α.I[i+1]+2.e-α.R[i+1]-e-2α.R[i+2]
c .i .e si i < 0 −α
1 − 2.e .z + e − 2α 2
.z
Partie causale : h-(i)=c.i.e-iα.u(i)
|z|>1, TZ[u(i)] = 1/(1-z-1)
TZ[ai.x(i)] = X(z/a) ⇒ TZ[e-iαu(i)] = 1/(1-e-αz-1)
TZ[ik.x(i)] = (z.d/dz)kX(z) ⇒ TZ[ie-iαu(i)] = e-αz-1/(1-e-αz-1)2
R[i]=R1[i]+ R2[i]
Partie anti-causale : h+(i)=(-c).(-i).e(-i)(-α).u(-i)
Image originale
Norme du
gradient
Direction du
gradient
Exemples de ∇ et ∆ .
B1 B2
|∇| Prewitt |∇| Sobel |∇| MDIF |∇| MM (B1) |∇| MM (B2)
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 à 0
2. Initialisation de la pile P avec les pixels / ∇ ≥ sh
3. Tant que |P|>0
a. 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
VM
ajouter VM à P
Image originale
Seuillage >72 +
élimination des bords
Blanc = seuillage >50, Seuillage hystérésis par
Norme du gradient Rouge = seuillage > 25 reconstruct. géodésique
Détection de contours (II)
Détection des maxima locaux de la norme du gradient
dans la direction du gradient θ
π
Cas θ ∈ 0 ;
4
(i-1,j+1)
A2
M1
(i,j-1) A0 A1 soit A0=(i,j), A1=(i,j+1), A2(i-1,j+1)
M2
(i,j) (i,j+1)
on cherche zM = α1A1+α2A2 avec α1+α2=1,
(i+1,j-1) (α1,α2)∈[0,1]2
alors α2=tanθ et α1=1-tanθ
donc ∇ (M1) = (1 − tan θ ). ∇ (i , j +1) + tan θ . ∇ (i −1, j +1)
∇ (M2 ) = (1 − tan θ ). ∇ (i , j −1) + tan θ . ∇ (i +1, j −1)
−π −π −π π π
Autres cas : θ ∈ ; θ ∈ ;0 θ ∈ ;
2 4 4 4 2
Fermeture de contours
• Construction d’1 « look-up table » permettant d’indexer les
pixels candidats à la fermeture pour chaque configuration.
7
Codage configuration : V = ∑ x i .2 i où xi=1 si contour, 0 sinon
i =0
Ex. 3 2 1 T[16][0]=1 ; 3 2 1 T[136][0]=0 ; 3 2 1 T[8][0]=1
4 0 4 0 4 0
5 6 7
T[16][j]={1,0,7} ; 5 6 7 5 6 7
T[8][j]={0,7,6}
Après
fermeture
de contours