Beruflich Dokumente
Kultur Dokumente
Notes de Cours
Par
Hamrouni M. Kamel
Année : 2005-06
ENIT : Ecole Nationale d’Ingénieurs de Tunis
Chapitre-1 : Généralités
1 - Introduction :
Pour l’être humain, l’image constitue l’une des principales sources d’informations. Une
scène contient une quantité importante d’informations qu’il est utile parfois de traiter et
d’analyser dans le but de prendre des décisions. Le traitement d’images admet donc deux
motivations principales :
• Recherche d’information pour une interprétation par l’homme
• Analyse de scènes pour la perception par la machine
Les applications du traitement d’image sont nombreuses et intéressent pratiquement tous les
domaines.
2 - Un peu d’histoire :
On peut présenter l’historique du traitement d’images en 4 périodes :
Dans le cas d’un mélange additif RGB, des couleurs primaires R (Red) G (Green) et B
(Blue) sont pondérées par leur intensité respectives a b et c et projetées sur un écran noir
avec un certain
recouvrement. C’est pour
cela que le système RGB Bleu
est dit aussi système Magenta
additif. Les couleurs RGB Cyan
sont dites couleurs Blanc
primaires de lumière. La
Commission Internationale Vert
Noir
d’Eclairage (CIE) a défini
en 1931 les longueurs Rouge
d’ondes des couleurs Jaune
primaires RGB : R= 700
nm, G=546.1 nm et B = Espace tridimensionnel des stimuli produits par les composantes
435.8 nm. Dans le système
RGB, une couleur est définie par trois coordonnées (r,g,b). L’origine correspond à la couleur
noir. Le blanc est obtenu lorsque r=g=b=valeur maximale (100). Sur la droite reliant l’origine
au sommet du cube, on trouve tous les points de l’espace vérifiant r=g=b et donc les
couleurs grises.
4.2 Le système
soustractif CMY : Jaune
Dans le système RGB, la
Vert
détermination de la couleur
s’opère par addition de
Rouge Noir
couleurs sur une surface
noire donc absorbante de
Blanc
couleurs. Ce système ne
convient pas dans le cas Magenta
de l’imprimerie où on Bleu
travaille avec des surfaces Cyan
blanches. On utilise le Espace tridimensionnel des stimuli produits par les composantes
système soustractif CMY
(Cyan Magenta Yellow) qui est complémentaire du RGB. Les couleurs cyan magenta et
jaune sont dites couleur primaire de pigment.
Il faut noter que le système CMY est l’inverse du système RGB. En effet, dans le système
RGB, à l’origine on trouve la couleur noire et au sommet opposé on trouve la couleur
blanche, alors que dans le système CMY, c’est la couleur qui constitue l’origine et au
sommet opposé on trouve la couleur noire.
à 100)
• La luminance est mesurée par un pourcentage (de 0 à 100)
⎛ X ⎞ ⎛ 2 . 769 1 . 7518 1 . 13 ⎞⎛ R ⎞
⎜⎜ Y ⎟⎟ = ⎜⎜ 1 4 . 5907 0 . 0601 ⎟⎟ ⎜⎜ G ⎟⎟
⎝ Z ⎠ ⎝ 0 0 . 0565 5 . 5943 ⎠⎝ B ⎠
Il est important de distinguer entre couleurs naturelles et fausses couleurs. En effet, une
image en noir et blanc est restituée en utilisant une table de correspondance dite « Table
des couleurs » ou « Color LUT » (« Look Up Table »). La color LUT contient pour chacun
des 256 codes de niveaux la définition de la couleur correspondante sur trois octets. On peut
donc jouer sur ces définitions pour restituer l’image en noir et blanc ou bien en fausses
couleurs.
Analyse : L’objectif de cette étape est d’analyser les objets retenus Diagnosti
en vue d’en extraire des caractéristiques chiffrées.
Décision
Diagnostic : Sur la base des caractéristiques obtenues on peut
énoncer des décisions.
1 - Introduction :
L’objectif du traitement d’images est d’extraire de l’image l’information utile. Pour cela,
l’image doit subir plusieurs transformations.
Image
source
Trsnformation T Image
Transformée
Image
source
Généralement, une transformation accepte une image en entrée et fournit une image en
sortie. Mais on peut aussi avoir des transformations avec plusieurs images en entrée et
plusieurs images en sortie.
De part la manière d’opérer, les transformations peuvent être calssées de la manière suivante :
- Transformations ponctuelles
- Transformations de voisinage
- Transformations spectrales
- Transformations morphologiques
2 - Transformation ponctuelles :
Ce sont des transformations telles que la nouvelle valeur du pixel dépend uniquement de
son ancienne valeur :
Remarque-1 : Une transformation d’image fait appel à un calcul répétitif sur l’ensemble des
N2 pixels de l’image. Pour réduire le temps de calcul, on peut remarquer que le calcul est
différent uniquement pour les différents niveaux (256) de couleurs que peut avoir un pixel qui
est très inférieur au nombre de pixels. Le calcul de l’image transformée nécessite donc le
calcul de N2 pixels. Il vaut mieux calculer les nouvelles valeurs des pixels une seule fois et
les mettre dans une table de correspondance.
Remarque-2 : Les opérations de transformations d’image entraînent souvent un
débordement de l’intervalle de variation de la valeur d’un pixel qui est généralement limité
par le fait que chaque pixel est stocké sur un octet. Pour éviter ce débordement, on peut
penser réduire par une division par exemple l’intervalle des pixels de l’image d’origine.
3 - Transformations de voisinage :
3.1 Définition :
Une transformation de voisinage est telle que la nouvelle valeur d’un pixel tient compte des
pixels appartenant au voisinage du pixel considéré.
Ce n’est autre qu’une transformation de voisinage. La moyenne sur un voisinage 3x3 est un
produit de convolution par une fonction constante définie sur un voisinage 3x3.
3.3 Algorithmes parallèles et algorithmes
séquentiels :
Dans le cas d’une transformation de voisinage, Il
existe deux manières de déterminer l’image
transformée. :
Algorithme séquentiel : Si le travail s’effectue sur la même matrice, la nouvelle valeur d’un
pixel est utilisée pour déterminer la nouvelle valeur des pixels suivants. Tout se passe
comme si les pixels sont modifiés séquentiellement. Un tel algorithme est dit séquentiel.
avec :
F(u)(pour u =0,1,2,..., N −1)⇔ F(0),F(∆u),F(2∆u)......(∆u =1/ N∆x)
A
X
F (u ) = ∫ A.e − 2 jΠux dx
0
=−
A
2 jπu
[e− 2 jπux] X
A − jπ uX
= sin( π uX ) e
πu 1/X 2/X 3/X
sin(πuX )
Î F (u ) = AX
πuX
N: Le nombre de lignes
M: Le nombre de colonnes
∆x : Le pas d’échantillonnage selon x
∆y : Le pas d’échantillonnage selon y
et posons : f ( x, y ) = f ( x0 + x.∆x, y 0 + y.∆y )
Alors la TF-2D discrète est donnée par :
N −1M −1
F(u,v)= 1 ∑ ∑ f(x, y)exp(−2jπ(ux / M +vy / N))
MN x =0 y =0
et sa transformée inverse est donnée par :
N −1M −1
f(x, y)=∑∑ F(u,v)exp(2jπ(ux / M +vy / N))
u =0 v =0
N −1M −1
et la TF inverse : f(x, y)=1/ N ∑∑ F(u,v)exp(2jπ(ux+vy)/ N)
u =0 v =0
Remarque : Pour des raisons de commodité, le facteur 1/N2 se trouvant normalement dans
la définition de la TF a été réparti entre la TF et la TF-1
Exemple 2D:
Soit une fonction f(x,y) = A si (x,y) appartient à l’intervalle (0-X,0-Y) et elle est nulle partout
ailleurs.
X
⎡ − 2 jπux ⎤ ⎡ e − 2 jπvy ⎤ Y sin(πuX )e − jπuX sin(πvY )e − jπvY
F (u, v) = A⎢
e ⎥ .⎢ ⎥ F (u , v) = AXY .
⎢ − 2 jπu ⎥ ⎣⎢ − 2 jπv ⎦⎥ πuX πvY
⎣ ⎦0 0
sin(πuX ) sin(πvY )
F (u, v) = AXY .
πuX πvY
4.5 Propriétés de la TF 2D :
a- Séparabilité :
La transformée de Fourier 2-D est séparable. En effet :
N −1 N −1
F(u,v)= 1 ∑exp(−2jπx / N)∑ f(x, y)exp(−2jπvy)/ N)
N x =0 y =0
N −1
Î F(u,v)= 1 ∑ F(x,v)exp(−2jπux)/ N)
N x =0
Î TF 2D peut être obtenue en effectuant 2 fois la TF 1-D :
TF / Ligne TF / Colonne
f(x,y) F(x,v) F(u,v)
Multipliée par N
b- Translation :
f(x, y)exp(2jπ(u0 x+v0 y)/ N)⇔ F(u −u0,v−v0)
f(x− x0, y − y0)⇔ F(u,v)exp(2jπ(ux0 +vy0)/ N)
Î Application : u0=v0 =N/2
exp(2 jπ (u 0 x + v 0 y ) / N ) = exp( jπ ( x + y )) = (−1) x + y
⇒ f(x, y)(−1) x + y ⇔ F(u − N / 2,v− N / 2)
Î En multipliant par (-1)x+y, on peut déplacer l’origine de l’espace fréquentiel au centre de
l’intervalle NxN. C’est ce qu’on fait généralement pour avoir le module de la TF centré.
La modification de l’origine de l’espace temporel, ne modifie pas le module F(u,v)
e- Linéarité :
La transformée de Fourier vérifie la propriété de linéarité car :
g- Laplacien :
Le Laplacien est très utilisé en traitement d’images pour rehausser les contours ders objets.
Il existe différentes solutions pour le calculer. La TF permet aussi de le déterminer. En effet :
∂2 f ∂2 f
Le laplacien est défini par : ∆2 f(x, y)= +
∂x2 ∂y 2
Et on peut démontrer (à faire en exercice) que :
TF (∆2 f ( x, y )) = −(2π ) 2 (u 2 + v 2 ) F (u , v)
h- Produit de convolution:
Le produit de convolution d’une fonction f par une fonction g est défini apr :
f(x)*g(x)= ∫ f(α)g(x−α)dα
∞
∫
La fonction de corrélation de deux fonctions f et g est définie par : f(x)o g(x)= f(α)g(x+α)dα
∞
Posons :
2 M −1
Si on suppose que : N=2n Î N=2M Î F ( u ) = 1 / 2 M ∑
u=0
f ( x ) W 2 uxM
⎧ M −1 M −1
⎫
F ( u ) = 1 / 2 ⎨1 / M
⎩
∑
u =0
f(2 x )W
u (2 x )
2M +1/ M ∑
u =0
f(2 x +1 )W
u (2 x + 1 )
2M +⎬
⎭
or W 2 ux
2M =W M
ux
⎧ M −1 M −1
⎫
Î F ( u ) = 1 / 2 ⎨1 / M
⎩
∑
u =0
f(2 x )W M
ux +1/ M ∑
u =0
f(2 x +1 )W M
ux
W u
2M ⎬
⎭
Si on pose pour u =0,1,2….(M-1) :
M −1 M −1
Fpaire(u)=1/ M ∑ f(2x)WMux et Fimpaire(u)=1/ M ∑ f(2x+1)WMux
u =0 u =0
a- FFT : Implémentation :
Considérons un exemple avec N=8 : {f(0),f(1),f(2),…,f(7)}
Pour le calcul de Fpaire(u) on utilise les échantillons : f(0), f(2), f(4), f(6)
Pour le calcul de la partie paire de Fpaire(u), on utilise : f(0) et f(4).
En faisant le même raisonnement pour Fimpaire , on aboutit à l’arborescence suivante.
Si on réarrange les échantillons et on calcule la TF de 2 points successifs à chaque étape
d’une manière récursive on aboutit au résultat.
TF de 2
points
TF de 4
points
TF de 8 points
Algorithme
F* FFT 1/N f *
Le noyau est dit séparable s’il peut se mettre sous la forme suivante :
g(x, y,u,v)= g1(x,u).g2(y,v)
Le noyau est symétrique si g1 = g 2
N −1
T(x,v)=∑ f(x, y).g2(y,v) puis T(u,v)=∑T(x,v).g1(x,u)
y =0 x =0
x=0 i=0
n −1
h ( x ,u ) = ∏ ( − 1 )
bi (x )b n − 1 − i (u )
Noyau inverse :
i=0
n −1 n −1
f ( x ) = ∑ W ( u )∏ (− 1 )
bi (x )b n −1 − i (u )
u=0 i=0
n −1
Π ( − 1)
[ b i ( x ) b n −1− i ( u ) + b i ( y ) b n −1− i ( v )]
Cas 2-D : g (x, y,u, v) = 1 / N
i=0
1 ∑ bi ( x ) bi ( u )
Noyau direct : g ( x, u ) = ( −1) i = 0 Où bi(x) est le ième bit de la représentation binaire
N
de x
n −1
∑ bi ( x )bi ( u )
Noyau inverse : h( x, u ) = (−1) i = 0
Cas 2-D :
n −1
( − 1)
1 ∑ [bi( bb (u )+ bi( b b ( v )]
Noyau direct : g ( x , y , u , v ) =
x ) y )
x=0
N
Noyau inverse : h( x, y, u , v) = g ( x, y, u , v)
(− 1 ) (− 1 )
∑ b i(x )b b ( u ) ∑ b i(y )b b ( v )
g ( x , y ,u , v ) = [ 1 / N x=0
][ 1 / N x=0
]
g(x, y,u,v)= g1(x,u)g2(y,v)
⎪⎪ c ( 0) = 1 / N ∑ f ( x )
x =0
Noyau inverse : ⎨ N −1
⎪c(u ) = 2 / N ∑ f ( x) cos[(2 x + 1)πu ] / 2 N pour u≠0
⎪⎩ x =0
Cas 2-D :
⎧ g ( x, y,0,0) = 1 / N
⎨
⎩ g ( x, y, u , v) = 1 / 2 N [cos[(2 x + 1)πu ].[cos[(2 y + 1)vπ ]
3
⎪⎪ c ( 0 ,0) =1/ N ∑∑
x =0 y =0
f(x, y)
⎨ N −1N −1
⎪c(u,v)=1/ 2N 3∑∑ f(x, y)cos[(2x+1)πu]cos[(2y +1)πu]
⎪⎩ x =0 y =0
La TCD inverse :
La TCD inverse est donnée par :
N −1N −1
f(x, y)=1/ Nc(0,0)+1/ 2N 3∑∑c(u,v)cos[(2x+1)πu]cos[(2y +1)πu]
u =1 v =1
A noter :
• Le noyau 2D de la TCD est séparable Î le calcul de la TCD peut se faire en appliquant
2 fois une TCD 1-D.
• La TCD peut être calculée en appliquant un algorithme FFT car :
−2juπ −2juπx ⎫
c(u)= 2/ N Re⎧⎨exp( )∑ f(x)exp(
N ⎬⎭
)
⎩ 2 N
• La TCD admet des applications en compression d’images.
1 - Introduction :
L’acquisition s’accompagne toujours d’une distorsion/dégradation.
Il existe différentes sources de dégradation (bruit) d’une image.
• bruit lié au contexte de l'acquisition : Bougé, mauvaises conditions d’éclairage,…
• bruit lié au capteur : Capteur de mauvaises qualités, mauvaise mise au point, etc…
• bruit lié à l'échantillonnage : Une mauvaise fréquence d’échantillonnage peut
introduire dans l’image des points blancs ou noirs connus souvent sous l’appellation
« sel et poivre ».
• bruit lié à la nature de la scène : Présence de fumée, de nuage, etc…
Il faut corriger l’image par un procédé algorithmique.
Deux grandes familles de procédés :
Rehaussement : donner à l’image un aspect visuellement correct. Le rehaussement repose
donc sur des critères subjectifs. Il est de nature empirique
Restauration : retrouver autant que possible l’image originale telle qu’elle était avant sa
dégradation ; La restauration repose donc sur des critères objectifs
~ ~
Chercher f(x, y) une estimation de f(x, y) telle qu’elle minimise une fonction d’erreur e(f, f) .
La restauration peut s’appuyer sur une fonction d’erreur précise par exemple l’erreur
quadratique moyenne :
~ ~
∑∑
2
e (f , f)= 1 ( f ( x , y ) − f ( x , y ))
MN
2 - Exemple de rehaussement :
L’œil humain est sensible au changement de contraste. C’est pour cette raison que le
rehaussement vise généralement à augmenter le contraste. Un arrondissement des couleurs
des pixels à 5 puis à 10 puis à 20 entraîne une augmentation de contraste et une
suppression de certains détails. Pour l’œil humain, un arrondi à 5 et à 10 ne sont pas
gênant. Par contre un arrondi à 20, on commence à voir la différence.
3 - Quelques définitions :
Dans la suite, nous allons utiliser quelques notions qu’il vaudrait mieux définir dès
maintenant : histogramme, histogramme cumulé, dynamique de l’image
3.1 Histogramme :
hist:: [0, L]→ N
l→hist(l) = nombre de pixels ayant le niveau l.
Un histogramme fournit une description de l’image. Il peut être exploité pour :
- La segmentation.
- Mesurer certaines propriétés texturales.
4 - Définition du rehaussement :
Supposons que f(x, y)∈[0, L] , le rehaussement consiste généralement à appliquer une
fonction :
T : [0, L] ⎯
⎯→[0, L]
L⎯
⎯→ T (L)
telle que : T(0)=0
T(L)=L et T croissante pour que la relation d’ordre soit maintenue.
Le problème revient donc à trouver une telle fonction T. Il existe différentes méthodes :
- étirement du contraste ou recadrage de la dynamique
- égalisation d’histogramme
- spécification d’histogramme
- rehaussement par filtrage spectrale
- utilisation de la couleur
Exemples de fonctions :
Remarque : les valeurs de la fonction T peuvent être calculées et stockées dans une table.
q(s)=[p(r)
1 ] =[1 ] −1
p (r ) r=
T
−1
(s )
r= T (s )
→ q(s)=1∀s∈[0,1]
→ La fonction T a une densité de probabilité uniforme sur [0,1]. Notez que ce résultat
-1
est indépendant de T (s) difficile à obtenir.
La fonction T n’est autre que l’histogramme cumulé de l’image. En transformant tous les
pixels de l’image par la fonction T, on aurait effectué ce qui est appelé :
Egalisation /linéarisation d’histogramme.
Il faut noter que dans le cas discret, l’histogramme ne sera pas parfaitement égalisé.
7 - Spécification d’histogramme :
Si l’image rehaussée est connue, on peut aussi lui faire subir une égalisation d’histogramme.
r
v=G(r)= ∫ q(w)dw
0
T :M 0 → M1 G-1 identique
' M1’ : hist égalisé
G:M 2 → M1 M2 : image rehaussée
G
M1 et M’1 ont la même densité de probabilité égale à 1. On peut donc supposer que M1 et
M1’ sont identiques (ce qui n’est pas vrai). On peut donc obtenir l’image recherchée M2 en
appliquant G-1 à M1.
Î G −1 : M 1 ⎯
⎯→ M 2
Î L’algorithme :
− Egalisation : M 0 → M1
− Spécifier l’histogramme voulu et déterminer G-1.
− Appliquer G-1 à M1, on obtient M2.
Dans la cas discret avec un nombre de points réduit la détermination de G-1 ne pose pas de
problèmes.
Remarque : l’image obtenue n’aura pas nécessairement l’histogramme spécifié.
⎝ ⎠
En choisissant T convenablement, on peut mettre en évidence les contours sans perdre les
caractéristiques du fond.
On peut obtenir des résultats analogues en prenant la valeur obsolue ce qui coûte moins
cher en temps de calcul.
Une autre approximation connue par le gradient de ROBERTS est donnée par la
formule suivante :
G(f(x, y))≈ f(x, y)− f(x+1, y +1) + f(x+1, y)− f(x, y +1)
A noter :
- le gradient est proportionnel à la différence en niveaux de gris des pixels voisins
- le gradient permet de rehausser les transitions brusques.
• Méthode-1 : g(x, y)=G(f(x, y)) : Les régions lisses apparaîtront en noir alors que les
points à fort gradient apparaîtront en clair plus ou moins foncé.
8.3 Le Laplacien :
Avec :
∆2x f(i, j)=[f(i +1, j)− f(i, j)]−[f(i, j)− f(i −1, j)}
= f(i +1, j)+ f(i −1, j)−2f(i, j)
et :
∆2y f(i, j)= f(i, j +1)+ f(i, j −1)−2f(i, j)
∇ f(i, j)= f(i +1, j)+ f(i −1, j)+ f(i, j +1)+ f(i, j −1)−4f(i, j)
2
Î Le Laplacien d’une image peut alors obtenu en faisant la différence entre l’image et sa
moyenne considérée sur un voisinage de 5 points.
f(i, j)−∇ f(i, j)=5f(i, j)−[f(i +1, j)+ f(i −1, j)+ f(i, j +1)+ f(i, j −1)]
2
Lorsqu’on est dans une région plate (⎯) ou au milieu d’une pente ( ⁄ ).
f(i, j)−∇ f(i, j)= f(i, j)
2
si on est en bas d’une pente tous, tous les voisins ont une valeur >= à f(i,j)
⇒ f −∇ f < f
2
Signal
Dérivée première
Dérivée seconde
Signal-K*Dérivée
d
G(u,v)= H(u,v).F(u,v)
Pour rehausser certains détails dans f(x,y), il suffit de choisir H(u,v) d’une manière
convenable. On peut choisir une fonction H pour rahausser les basses fréquences (filtre
passe bas), ou bien les hautes fréquences (filtre passe haut) ou bien une bande de
fréquence (filtre passe bande).
9.1 Filtre passe-haut :
Si on veut accentuer les contours présents dans f(x,y), il suffit de choisir H(u,v) qui renforce
la composante haute fréquence de F(u,v).
Il existe différents filtres passe-haut qui diffèrent seulement par le choix de la fonction de
transfert du filtre.
Nous allons passer en revue quelques uns de ces filtres. Leur fonction de transfert est à
symétrie radiale.
H(u,v)= 1
1+[D0 ]2n
D(u,v)
H(u,v)=1/ 2 pour D(u,v)= D0
H(u,v) = 0 si D(u,v)<D0
H(u,v)=
1 (D(u,v)− D1) si D1≤ D(u,v)≤D0
D0 − D1
1 sinon
Discussion :
• Un filtre passe haut coupe les basses fréquences Î les petit détails vont disparaître de
l’image résultas. Pour remédier à cela, on peut ajouter une constante à la fonction de
transfert.
H(u,v)+1 par exemple.
• L’image obtenue est généralement obscure. On peut lui appliquer une égalisation
d’histogramme.
HPF : Egalisation
H(u,v)+1 d’histogramme
H(u,v)= 1
1+(D(u,v)/ D0)2n
n est un paramètre et est dit l’ordre du filtre
D0 est la fréquence de coupure qui est aussi un
paramètre du filtre.
Filtre exponentiel ( ELPF)
H(u,v)=exp(−(D(u,v)/ D0)n)
H(u,v) = 1 si D(u,v)<D0
H(u,v)=
1 (D(u,v)− D1) si D1≤ D(u,v)≤D0
D0 − D1
0 sinon
.
Exemple : Filtre passe-bande circulaire conservant les fréquences [30, 50] pixels.
−1 F(x,y)) G(x,y)
et en posant : i'(x, y)=TF (H(u,v).I(u,v))
−1
r'(x, y)=TF (H(u,v).R(u,v))
on obtient : Log exp
s(x, y)=i'(x, y)+r'(x, y)
s(x,y) est la fonction filtrée de z(x,y)
FFT FFT-1
or : z(x,y)=log(f(x,y)) donc la fonction filtrée de
f(x,y) est :
g(x,y) =exp(s(x,y))
H(u,v)
=exp(i’(x,y)).exp(r’(x,y))
=i’’(x,y).r’’(x,y)
Schéma de filtrage homomorphique
où : i ‘’ représente l’illumination et r’’ représente la
réflectance
Choix de H(u,v) :
L’illumination présente de faibles variations alors que la réflectance présente des variations
abruptes.
Î la luminance est associée aux fréquences basses; la réflectance est associée aux hautes
fréquences.
Î il faut que H(u,v) effectue différemment les hautes et les basses fréquences.
Rehaussement par accentuation des détails (sharpening):
12 - Restauration d’images
La restauration d'images a pour objet la réduction, voire l'élimination des distorsions
introduites par le système ayant servi à acquérir l'image. Contrairement au rehaussement qui
vise à améliorer la qualité visuelle donc subjective de l’image, la restauration vise à retrouver
autant que possible l’image originale telle qu’elle était avant sa dégradation ; La restauration
repose donc sur des critères objectifs.
On peut diviser les techniques de restauration en 5 classes selon la manière dont elles
opèrent :
• par connaissances à priori
• par connaissances à postériori
• par filtrage
1 - Introduction :
L’idée de base de la morphologie mathématique est de comparer les objets à analyser à un
autre objet de forme connue appelée « élément structurant ». Chaque élément structurant
fait apparaître l’objet sous un jour nouveau. Tout l’art consiste à choisir le/les bons
éclairages. Fondamentalement, la morphologie mathématique a un caractère ensembliste.
La morphologie mathématique (m.m) offre des outils de traitement (filtrage morphologique)
et d’analyse sur des images binaires et en niveaux de gris.
C’est en 1901 que K.Minkowski introduit les premiers concepts de la théorie.
K.Minkowski, A.Haas, G.Matheron et J.Serra développèrent par la suite la morphologie
mathématique.
La morphologie mathématique est l’une des 4 théories qui sont utilisées en traitement
d’images : Ces théories sont :
• Le traitement du signal.
• Les méthodes statistiques.
• Les méthodes syntaxiques.
• La morphologie mathématique.
La m.m est basée sur la théorie des ensembles.
2 - Rappels sur les ensembles :
Dans ce qui suit les lettres majuscules désignent des ensembles et les lettres minuscules
désignent des éléments appartenant aux ensembles. Sur les ensembles on définit les
opérations suivantes :
L’égalité : X =Y ⇔{x∈X ⇒ x∈Y et x∈Y ⇒ x∈X } L’égalité est réflexive, symétrique et
transitive.
L’inclusion : X ⊆Y ⇔{x∈X ⇒ x∈Y } Réflexive, antisymétrique et transitive.
L’intersection : X ∩Y ⇔{x / x∈X et x∈Y } Commutative, associative, idempotente.
L’union : X ∪Y ⇔{x / x∈X ou x∈Y } Commutative, associative, idempotente.
La différence : X −Y ⇔{x / x∈X et x∉Y }
La différence symétrique : X∆Y ⇔ X ∪Y − X ∩Y Commutative et associative.
X ⇔{x / x∈E et x∉X }
c
Le complémentaire : E étant un ensemble servant de
référentiel.
( X ∩Y )c = X c
∪Y
c
Formule de Morgan.
Le symétrique : soit E un référentiel sur le quel on a défini l’addition et la soustraction.
Le symétrique X ⇔{− x / x∈E} .
Le translaté : X b ⇔{z∈E / z = x+b, x∈X } . Addition et soustraction de Minkowski :
X et B deux ensembles quelconques de E.
L’addition de Minkowski : Soient X et B deux ensembles quelconques on définit alors
l’addition de Minkowski X ⊕ B ⇔{z∈E / z = x+b, x∈X,b∈B}
4 - Transformations morphologiques
élémentaires :
4.1 Erosion :
Soient X de R2 ( pour faciliter la
compréhension) et B⊂ R2, B est repéré par
son centre z. on déplace Bz de telle sorte que
son centre occupe tous les points de R2 et on
pose la question : Bz ⊆ X ?
Tous les points z ayant une réponse positive
forment un nouvel ensemble dit érodé de X
par B
a- Définition 1 :
X θ B = {z ∈ E / B z ⊆ X } Erosion par un
b- Définition 2 :
XθB = I X −b
b∈ B
c- Effets de l’érosion :
• Rétrécissement des objets
de taille > taille de B.
• Disparition des petites composantes.
4.2 Dilatation :
On considère X et Bz, on fait déplacer Bz dans tout l’espace E et on se pose la question : Bz
touche t-il X ?
L’ensemble des points z ayant une réponse positive
forme l’ensemble dilaté de X
X ⊕ B ⇔{z∈E / Bz ∩ X ≠Φ}
et en terme ensembliste :
X ⊕ B= U X b = UBx ={x+b / x∈X,b∈B}
b∈B x∈ X
a- Effets de la dilation :
• Boucher les trous.
• Réunit les composants très proches.
• Ne préserve pas la connexité.
4.3 Dualité de l’érosion et de la dilatation :
L’érosion et la dilation sont
duales par rapport à la Dilatation par un
complémentation.
XΘB =(X c ⊕ B )
c
et
(
XΘB= X c + B )
c
B est le symétrique de B
par rapport à son centre.
Si B a une symétrie radiale
alors :
XΘB=(X c + B )
c
b- La croissance :
X ⊆Y ⇒ {XX ⊕Θ BB ⊆⊆ YY Θ⊕ BB
c- L’extensivité :
Si l’élément structurant B contient son Original
origine
La dilatation est extensive : X ⊆ X ⊕ B
L’érosion est anti-extensive : XΘB⊆ X
Non idempotentence :
L’érosion et la dilatation ne sont pas
idempotentes.
Connexité non préservée (sauf si X
est convexe). X B X B
5 - Ouverture morphologique :
Une érosion suivie d’une dilatation par
le même élément structurant B est dite
ouverture :
X B = (X Θ B )⊕ B Fermé
Ouvert
En général l’ensemble ouvert est plus
régulier et moins riche en détail. L’ouverture adoucit les contours. Elle joue le rôle de filtre
non linéaire. Elle laisse tomber tous les détails qui ne peuvent pas être atteints par l’élément
structurant. En modifiant la taille de l’élément structurant, on peut supprimer plus / moins de
détails.
5.1 Propriétés :
Croissante : si X ⊆ Y ⇒ X B ⊆ YB
Anti- extensive : XB⊆X
Idempotente : (X B) B = X B
Propriété : X B ={Bz / z∈E et Bz ⊆ X }
Ce qui signifie que l’ouvert est l’ensemble des éléments structurants entièrement inclus dans
X.
6 - Fermeture morphologique :
La fermeture est une transformation duale de l’ouverture.
X B = (X ⊕ B )Θ B
C’est bien une transformation duale de l’ouverture car :
(X B )c = (X c ) B et ( X B )c = (X c) B
La fermeture est aussi un filtre similaire à l’ouverture mais sur le complémentaire.
6.1 Propriétés :
Croissante : si X ⊆ Y ⇒ X B ⊆ Y B
Extensive : X ⊆X B
Idempotente : (X B) B = X B
9 - Transformation de voisinage :
9.1 Configuration de voisinage :
Le voisinage d’un point est formé de 7 points (en trame hexagonale) et de 9 points (en trame
carrée).
Si on attribue des valeurs (0/1) à ces points on forme ce qu’on
1 1 1 1 1
appelle une configuration de voisinage.
9 0 0 1 0 1 0
En trame carrée, existent 2 configurations possibles.
1 1 1 1 1
X ⊗V(x)=⎧⎨1 si Vx(X) ∈ V
⎩ 0 sin on
9.4 Amincissement et épaississement :
L’amincissement d’un ensemble X consiste à lui enlever des points alors que
l’épaississement consiste à lui ajouter les points.
Si V est une famille de voisinage et X ⊗V(X) est une transformation de voisinage.
L’amincissement : X o U = X − ( X ⊗ U )
L’épaississement : X •U = X ∪ ( X ⊗ U )
Exemple :
L’érosion est un amincissement alors que la dilatation est un épaississement.
Propriétés :
• L’amincissement et l’épaississement sont duales.
(X oV)c = X c •V c
• On a aussi : X oV ⊆ X ⊆ X •V
Exemple de configuration de voisinage (trame hexagonale)
Les configurations suivantes fournies en trame hexagonale est un ensemble de ce qui est
appelé l’alphabet de Golay.
configuration Amincissement Epaississement
Squelette Squelette par zone d’influence
1 1
* 1 *
0 0
contour
1 1
1 1
1
1 1
Erosion dilatation
* *
* 1
0
* *
10 - Transformations géodésiques :
La géodésie est par définition la science qui a pour but la mesure de la terre et l’étude de ses
formes.
10.1 Distance géodésique
La notion de distance entre points, entre ensembles, ou entre point et ensemble est très
importante en traitement d’images. On distingue deux catégories de distances, la distance
euclidienne et la distance géodésique. L’utilisation de la distance géodésique au lieu de la
distance euclidienne dans les transformations morphologiques qui font recours à la notion de
distance permet d’obtenir de nouvelles transformations très importantes pour la
segmentation d’images.
Considérons l’ensemble X et deux points x et y appartenant à cet ensemble. Une ligne ou un
arc d’extrémité x et y seront appelés ligne ou arc géodésiques s’ils vérifient les deux
conditions suivantes :
● être totalement inclus dans l’ensemble X,
● Correspondre au plus petit parcours entre x et y.
X
10.3 Erosion géodésique :
De la même manière on définit l’érosion
géodésique :
Y
∀ X ⊇ Y , E Y( 1 ) ( X ) = ( X Θ B ) ∪ Y
EY(X
et EY(n)(X)= EY(1)(EY(1).....(X)...)
Autrement dit, il ne faut pas enlever les points appartenant à Y
10.4 L’érodé ultime :
L’érodé ultime est l’ensemble des points qui
disparaissent les derniers lors d’un processus
d’érosion.
Il peut être défini aussi par les maximas régionaux de
la fonction distance.
10.5 Fonction distance :
La fonction distance d’un ensemble x est une image à
niveaux de gris où à chaque point de x est attribuée
une valeur égale à sa distance minimale du bord de X.
La fonction distance est très intéressante puisqu’elle
peut donner rapidement l’érodé de taille donnée.
11 - Squelette :
11.1 Définition :
Le squelette admet beaucoup d’applications en analyse d’images. Il admet 3 définitions :
Définition 1 : La squelette est l’ensemble des points qui ne brûlent pas lors d’un feu de
prairie.
En effet, si on dispose d’une prairie avec une herbe sèche
et si on suppose qu’il n’existe pas de vent. Si on met le feu
en tout point du bord de la prairie au même instant, l’herbe
va brûler et les fronts de feu vont se rapprocher. La
différence de température engendre une différence de
pression donc création de vent au niveau de chaque front
de feu. Ce vent va essayer d’éteindre le feu du front de
face. Quand le feu sera éteint, il reste un mince filament
d’herbe qui n’aura pas été brûlé. C’est le squelette de la
prairie.
Définition 2 : La squelette est l’ensemble des centres des
boules maximales continues dans X.
• Idempotente : Sq(Sq(X))=Sq(X)
• Anti-extensive : Sq(X)⊂ X
• Ni croissante ni décroissante : X ⊂Y n'entraine pas (Sq(X))= Sq(Y)
11.5 Propriétés topologiques du
squelette :
• connexité : la squeletisation ne
préserve pas la connexité.
• Homotopie (nombre de
conexité) : ce nombre n’est pas
toujours vérifié.
Z=f(x)
Sous-
graphe de
Sous-graphe
de l’élément
Le dilaté structurant
Z=f(x)
L’érodé
14 - Gradient morphologique :
Le gradient morphologique est défini de la manière suivante :
f ⊕λB− fΘλB
grad(f)=lim
2λ
λ →0
f ⊕ B − fΘB
Dans le cas discret : grad(f)=
2
On montre que le gradient morphologique est égal au module du gradient de f.
Ces lignes correspondent aux contours recherchés de l’image. La figure illustre ce processus
d’inondation. Remarquons qu’on associe à chaque minima local un bassin versant et que les
contours obtenus sont fermés et squelettisés.
16.1 Problème de la LPE :
La LPE s’applique généralement sur l’image gradient dans laquelle les contours sont
rehaussés et les lignes de crête (les maximas locaux) correspondent bien aux points du
contour. Avec des images bruitées, on obtient énormément de lignes de contour,
phénomène dit « sur-segmentation. Pour remédier à ce problème, on peut commencer par
filtrer l’image avant de déterminer son gradient, ou bien contrôler le processus de
construction de la LPE.
franchi pour arriver dans un autre bassin ayant un minima plus bas que le premier
(Figure-3).
d- Contrôle par un critère volumique :
Cette technique consiste à n’autoriser la construction d’un barrage que si le volume de l’eau
dans le bassin a dépassé un certain seuil.
16.3 Algorithmes d’obtention de la LPE :
Ils existent plusieurs algorithmes permettant l’obtention de la LPE. Ils sont par ordre
chronologique :
- par amincissement : très lent [Beucher]
- par fléchage : un graphe est établi indiquant la relation de niveau entre les différents
pixels. [Beucher]
- Inondation : par file d’attente [Vincent et Soile]
- Inondation par file d’attente hiérarchique [Meyer]
- Inondation par file d’attente hiérarchique sans biais [Beucher] : le plus récent et le
meilleur.
Exemple de résultat de la LPE : (a) image originale (b) image gradient (c) LPE par l’algorithme de
Vincent & Soile (d) LPE par l’algorithme par FAH de Beucher
17 - Exercices :
1/ Montrer que : ∀ X et Y on a : X ⊕ B ⊂ Y ⇔ X ⊂ YΘB
2/ Montrer que l’ouverture est croissante
3/ Montrer que la fermeture est croissante.
4/ Soient B et B’ deux éléments structurants tels que B ⊂ B' . ∀ X on a X ⊕ B ⊂ X ⊕ B'
5/ Soient B et B’ deux éléments structurants tels que B ⊂ B' .
∀ X on a XΘB' ⊂ XΘB
6/ Monter que la dilatation et et l’érosion sont croissantes.
1 - Introduction :
Une image est généralement composée d’objets. L’analyse d’image nécessite l’identification
de ces objets. Un objet peut être composé de régions plus ou moins homogènes. Chaque
objet est délimité par une bordure appelée « contour ». L’identification d’un objet nécessite
d’abord celle des régions. La segmentation d’image consiste donc à identifier les différentes
régions présentes dans l’image. Elle peut être considérée comme étant une partition de
l’image en sous ensembles Ri appelés régions, telles que :
Ri est connexe
∀ i Ri ≠ ∅
∀ i , j / i ≠ j Ri ∩ Rj = ∅
∪i Ri = l’image entière
Il existe deux grandes approches pour segmenter un image :
- Approche par région : On recherche les pixels se trouvant à l’intérieur de la région
- Approche par contour : On recherche les transitions (ou discontinuités) entre les régions.
Ces transitions constituent leur bordure ou bien leur contour.
Les deux approches sont duales puisque la connaissance de la région permet la
détermination de la bordure et vice-versa
Un algorithme de segmentation s’appuie donc sur :
- la recherche de discontinuités afin de mettre en évidence les contours
- la recherche d’homogénéité locale pour définir les régions ;
- ou encore sur la coopération des deux principes.
Dans le cas de l’image qui est une fonction à deux variables, on parle plutôt de gradient et
de Laplacien.
2.1 La méthode du gradient
Le gradient des niveaux de gris en un point d’une image 2D est un vecteur constitué des
deux dérivées partielles de l’image :
L’amplitude du gradient ne donne pas directement les points appartenant au contour car
ceux-ci correspondent au maximum du gradient qu’il faut déterminer pour avoir une image
contour. Si on effectue un simple seuillage on risque d’avoir des morceaux de contour épais
et d’autres entrecoupés. La « Ligne de Partage des Eaux » est une méthode efficace
permettant de déterminer les maximas du gradient qui sont considérés comme les lignes de
crête de la surface géographique représentée par l’image.
Etant donné que l’image est discrète, l’estimation du gradient se fait par des opérateurs de
différenciation. Il en existe plusieurs : Opérateur de Robert,
Sobel, Prewit, Kirsh, etc… 1 0 0 1
L’application de chaque opérateur revient généralement au
calcul d’un produit de convolution entre l’image et un masque
0 -1 -1 0
composé de 3x3 pixels. Chaque opérateur utilise généralement
2 ou plusieurs masques chacun permettant d’estimer le gradient
dans une direction.
a- Opérateur de ROBERT
L’opérateur de Robert utilise deux masques 2x2 dans les directions 45° et 135°.
b- Opérateur de Sobel
Les régions étant d’une homogénéité rarement parfaite, l’opérateur de Sobel ainsi que les
suivants préfèrent étendre la différentiation à plusieurs voisins.
1 2 1 1 0 -1
0 0 0 2 0 -2
-1 -2 -1 1 0 -1
c- Opérateur de Prewitt 1 1 1 1 0 -1
0 0 0 1 0 -1
d- Opérateur de Kirsch
L’opérateur de Kirsh utilise 8 masques pour -1 -1 -1 1 0 -1
considérer les 8 directions espacées de 45 degré.
3 3 3 3 3 3 -5 3 3 -5 -5 3 -5 -5 -5 3 -5 -5
3 0 3 -5 0 3 -5 0 3 -5 0 3 3 0 3 3 0 -5 Etc.
-5 -5 -5 -5 -5 3 -5 3 3 3 3 3 3 3 3 3 3 3
e- La méthode du Laplacien :
Cette méthode est très utilisée pour la détermination du contour. En effet les points de ce
dernier correspondent aux points de passage par zéro du Laplacien. Comme ces points
existent toujours et sont uniques, on est assuré d’avoir un contour fermé et d’épaisseur un
pixel. Cependant cette méthode présente l’inconvénient d’être très sensible au bruit. On
risque donc d’obtenir une sur-segmentation. Pour remédier à ce problème, il faut lisser
l’image avant d’appliquer le Laplacien.
∂2 f ∂2 f
Le Laplacien est défini comme la somme des dérivées partielles secondes. ∆f = + 2
∂x 2 ∂y
Dans le cas discret, le Laplacien peut être approximé par un produit de convolution par le
masque L1.
On peut conjuguer au sein d’un L1 L2 L3
même opérateur le lissage par
une Gaussienne et la 0 -1 0 -1 -1 -1 1 -2 1
détermination du Laplacien. C’est
-1 4 -1 -1 8 -1 -2 4 -2
ce que font les opérateurs L2 et
L3. 0 -1 0 -1 -1 -1 1 -2 1
Remarque :
• l’application d’un opérateur revient à prendre le produit de convolution de l’image par le
masque. Dans la pratique, on applique une convolution par une colonne suivie d’une
convolution par une ligne. En effet :
f(x , y )⊗ (mv ⊗ m h ) = (f(x , y )⊗ mv )⊗ m h
• Traitement des effets de bord :
L’application d’un produit de convolution près du bord pose de petits problèmes : on a besoin
de points situés à l’extérieur de l’image. Pour résoudre ce problème, on peut appliquer l’une
des solutions suivantes :
9 Considérer une valeur par défaut.
9 Miroirisation : imaginer un miroir sur le bord ce qui provoque l’effet de symétrie
9 Périodisation : considérer que l’image est périodique
9 Recopiage des valeurs du bord à l’extérieur de l’image.
9 Ne pas calculer le produit de convolution sur le bord de l’image.
forme (CBF) et la Ligne de Partage des Eaux (LPE). Cette dernière est présentée dans le
chapitre réservé à la morphologie mathématique.
a- Cas d’une image binaire :
X − ( X Θ B ) : l’image moins l’érodé fournit le contour intérieur de l’objet.
(X ⊕ B)− X : le dilaté moins l’image fournit le contour extérieur de l’objet.
b- Cas d’une image en niveaux de gris :
• GE(f)= f −(fΘB) est appelé Gradient d’Erosion.
Image originale Image seuillée à 110 Image seuillée à 128 Seuillage après égalisation
g ( x , y ) = ⎧⎨1 si f ( x , y )≥ S
⎩ 0 sin on
On peut aussi avoir un intervalle [S1,S2] dans lequel doit se trouver la valeur du seuil :
g ( x , y ) = ⎧⎨1 si S 1≤ f ( x , y ) ≤ S 2
⎩ 0 sin on
Ou bien d’une manière plus générale, la valeur du pixel doit appartenir à un domaine E :
g ( x , y ) = ⎧⎨1 si f ( x , y ) ∈ E
⎩ 0 sin on
En fait la méthode du seuillage s’apparente aux méthodes de classification puisque le
résultat obtenu n’est pas nécessairement une région connexe. Ceci vient du fait que le
critère de décision n’intègre aucune condition de connexité ou de voisinage. Cependant, un
post-traitement consistant en un étiquetage des composantes connexes fournirait des
régions.
Nous venons de considérer un seuillage pour déterminer deux classes. Le principe peut se
généraliser à plusieurs classes. En effet, si on applique plusieurs valeurs de seuil S1, S2, S3,
… Sn on obtient (n+1) classes.
3.2 Détermination de la valeur du seuil :
Pour appliquer la méthode du seuillage il faut pouvoir déterminer automatiquement la bonne
valeur de seuil. Parfois, lorsque éclairage n’est pas uniforme par exemple, on ne peut pas
appliquer le même seuil à toute l’image.
Pour déterminer le bon seuil, plusieurs techniques peuvent être appliquées : minimums
locaux de l’histogramme, minimisation de la variance, maximisation de l’entropie,…
a- Minimums locaux de l’histogramme :
L’histogramme peut être utilisé pour la détermination de la valeur du seuil. D’autres
techniques permettent de déterminer un seuil adaptatif.
Dans le cas d’une image contenant plusieurs régions bien distinctes, l’histogramme est m-
modales (m étant le nombre de régions). Pour déterminer les seuils si, on peut chercher les
minimums locaux de l’histogramme. Cette technique est simple mais est très peu appliquée
car les images traitées sont le plus souvent bruitées et leur histogramme est unimodal.
b- Minimisation/ Maximisation de la variance :
La répartition des pixels en N classes est un problème classique en classification. Le choix
des seuils Si permet de détecter N classes auxquelles on peut associer la taille ti, la
moyenne mi et la variance Vi :
ti = ∑ H ( j) avec Di = [si −1 , si [ la gamme des niveaux de gris de la classe Ci
j ∈ Di
mi = ∑ j .H ( j ) / t
j∈Di
i
Vi = ∑ ( j − mi ) 2 .H ( j ) / t i
présence de contours. Pour éviter ces problèmes, on peut calculer le gradient sur la
moyenne d’un voisinage du pixel. C’est le cas de l’opérateur de Rosenfeld :
G x ( x, y ) = I * ( x + r , y ) − I * ( x − r − 1, y )
G y ( x, y ) = I * ( x, y + r ) − I * ( x, y − r − 1)
où : I * ( x, y ) = (2r + 1) −2 .Sum i + j < r I ( x + i, y + j )
r définit la taille des fenêtres autour des points sur lesquelles on effectue la moyenne.
avec :
m(i,j) = la valeur du pixel (i,j) et
N est le nombre de pixels appartenant à la région d’intérêt R
La variance correspond au moment d’ordre 2. Elle mesure la répartition des niveaux de gris
autour de la valeur moyenne. Plus la variance est élevée, plus l’écart entre les différents
niveaux de gris et leur valeur moyenne est grand.
1
Var =
N
∑ (m(i, j ) − Moy)
( i , j )∈R
2
1
Skew =
N
∑ (m(i, j ) − Moy)
( i , j )∈R
3
Le tableau-3.1 montre des exemples d’attributs statistiques de premier ordre calculés sur
des images de Brodatz.
b- Les méthodes de second ordre
Les moments statistiques à l’ordre k n’utilisent pas d’information sur la localisation des pixels
les uns par rapport aux autres. Pour effectuer une analyse large, on fait appel aux méthodes
de second ordre qui exploitent principalement l’information contenue dans la matrice de
cooccurrence. Appelée aussi « matrice de dépendance spatiale des niveaux de gris », cette
matrice détermine la fréquence d’apparition d’un motif formé de deux pixels, de longueur
donnée et orienté dans une direction particulière. Elle est définie par la formule :
Une matrice de cooccurrence contient une masse importante d’information sur la finesse, la
direction et la granularité de la texture. Pour une texture grossière, les valeurs de la matrice
sont concentrées sur la diagonale principale, alors que pour une texture fine, les valeurs de
la matrice seront dispersées. Haralick a proposé quatorze indices descriptifs de la texture qui
peuvent être déterminés à partir de la matrice de cooccurrence. Les plus fréquemment
utilisés de ces indices sont : l’homogénéité (3.7), le contraste (3.8), l’entropie (3.9) et la
directivité.
L’indice d’homogénéité est d’autant plus élevé qu’on retrouve souvent le même couple de
pixels ce qui exprime soit l’uniformité de la texture soit la périodicité dans la direction du
vecteur de translation :
1
Hom =
Nc 2
∑∑ (MC (u, v))
u v
t
2
L’indice de contraste exprime le passage fréquent d’un pixel clair à un pixel foncé ou
inversement :
L −1
1
Cont =
Nc( L − 1) 2
∑ k ∑ MC (u, v)
k =0
2
u −v = k
t
Tableau : Exemples d’attributs statistiques calculés sur des images de l’album de Brodatz
116,93 6,851 103 61,614 103 88,991 106 2,3601 69,35 2,4687
112,1182 6,923 103 207,661 103 97,154 106 2,7817 337,02 3,0219
L’indice d’entropie exprime le degré de désordre dans la texture. Il est d’autant plus faible
qu’on a souvent le même couple et est d’autant plus forte que chaque couple est bien
représenté :
1
Ent = 1 − ∑∑ MCt (u, v). ln(MCt (u, v)).l MCt (u ,v )
Nc. ln( N c ) u v
⎧1 si MC t (u , v) ≠ 0
avec : l MCt ( u ,v ) = ⎨
⎩0 sin on
La directivité exprime la présence éventuelle d’une certaine orientation. Elle est d’autant
plus grande qu’il y a des pixels de même niveau de gris séparés par la translation t :
1
Direct =
Nc
∑ MC (u, u)
u
t
La fonction de Gabor est une sinusoïde complexe modulée par une Gaussienne. Les
équations suivantes donnent la réponse impulsionnelle, la fonction de transfert ainsi que les
transformations nécessaires.
h( x, y ) = g ( x, y ). exp(2 jπFx' )
( x' , y ' ) = ( x. cosθ + y. sin θ ,− x. sin θ + y. cosθ )
H (u, v) = exp{− 2π 2σ 2 ((u '− F ) 2 + v' 2 )}
(u ' , v' ) = (u. cos θ + v. sin θ ,−u. sin θ + v. cos θ )
F
θ
u
Echantillons de résultats obtenus par filtrage de Gabor sur une image de texte arabe. (a) image du texte considérée
comme une texture, (b) Résultat obtenu en fixant (fréquence=4, angle=0°), (c) Résultat obtenu en fixant (fréquence=4,
angle=45°), (d) Résultat obtenu en fixant (fréquence=4, angle=90°).
Les MCA sont très utilisés en segmentation d’images. Les applications les plus
spectaculaires sont celles dont l’objectif est le suivi d’un objet dans une séquence d’images
qui peut être soit une séquence d’images vidéo (inter-frame snake), soit des coupes d’objets
3D (imagerie médicale) (inter-slice snake), soit des images stéréo (stéréo snake).
Son principe consiste à partir d’un contour initial proche de l’objet choisi à l’intérieur ou bien
à l’extérieur de l’objet et à le laisser évoluer sous l’influence de forces attractives ou bien
répulsives pour qu’il se rapproche au mieux du contour recherché. Le processus est donc
itératif et s’arrête lorsque le contour épouse le contour réel de la région objet de la
segmentation.
Les forces agissant sur le contour actif sont exprimées sous la forme d’énergie dont la
minimisation fera évoluer le snake dans la direction du contour recherché. Il existe trois
types d’énergie :
- énergie potentielle ou bien énergie image responsable de l’attraction du snake vers
les caractéristiques du contour recherché
- énergie interne responsable de la manière dont le snake va évoluer donc de son
élasticité et de sa rigidité.
- énergie externe ajoutée par l’utilisateur pour exprimer une force d’attraction ou bien
de répulsion
X ( s ) = ( x( s ), y ( s )) avec s ∈ [0,1]
Le snake admet une énergie qui est la somme des énergies de tous ses points :
1
E snake = ∫ E élément ( X ( s ))ds
0
1 1 1
E snake = ∫ Eint ( X )ds + ∫ E ext ( X )ds + ∫ Eim ( X )ds
0 0 0
a- Energie interne :
L’énergie interne sert à maintenir une certaine topologie cohérente du contour en empêchant
des nœuds du contour de se balader individuellement trop loin de leurs voisins. Cette
énergie est dite « interne » puisqu’elle est caractéristique des propriétés physiques du
contour. Elle contrôle donc l’élasticité et la rigidité du contour dans le but de limiter l’influence
des effets externes sur la déformation du contour. Elle s’exprime donc en fonction de la
dérivée première qui permet de contrôler l’élasticité du snake et de la dérivée seconde qui
permet de contrôler sa rigidité:
Eint ( X ) = α ( s ) X s ( s ) + β ( s ) X ss( s )
2 2
avec :
∂X ∂2 X
X s ( s) = et X ss ( s ) =
∂s ∂s 2
α (s) est un paramètre qui contrôle l’élasticité (ou la tension) du snake.
et β (s ) est un paramètre qui contrôle la rigidité du signal.
b- Energie externe :
L’énergie externe sert à introduire des informations de haut niveau en exprimant par
exemple des forces d’attraction ou bien de répulsion de/vers des points ou bien des régions
particulières de l’image. Par exemple, l’attraction vers un point i de l’image peut être
exprimée de la manière suivante :
E ext ( X ) = k X − i
2
Exemple de contour actif par approche région : détection des cavités cardiaques dans une
image scintigraphique du cœur.
1 - Introduction :
Dans le chapitre précédent, nous avons présenté la segmentation dont le rôle est d’identifier
les différents objets, ou segments ou régions se trouvant dans une image. Dans ce chapitre,
nous allons nous intéresser aux propriétés géométriques de ces objets pour préparer leur
reconnaissance.
L’image d’entrée est donc une image binaire résultant de la phase de segmentation. Le fond
admet une valeur généralement nulle et les objets admettent une autre valeur.
2 - Adjacence et connectivité :
2.1 Connectivité et bordure :
La connectivité désigne la connectivité des voisins à un pixel. En trame carrée, on peut
travailler en connectivité (ou connexité) 4 ou en connectivité
* * * *
8:
* (i,j) * * (i,j) *
Connexité-4 : Un point admet 4 voisins
* * * *
Connextité-8 : un point admet 8 voisins
2.2 Chemin :
Un chemin entre deux pixels (i,j) et (h,k) est
une séquence de pixels distincts :
(i, j),(i1,j1), (i2,j2), …… (in,jn), (h,k) avec (ik,jk)
adjacent à (ik-1,jk-1)
Selon qu’on travaille en connexité-4 ou en
connexité-8, la solution est différente.
La longueur d’un chemin est égale au nombre
de pixels constituant le chemin moins 1 .
2.3 Relation « connecté à » et composante connexe :
Soient S un ensemble et p et q deux points. On dit que p est connecté à q s’il
existe un chemin de p à q utilisant uniquement des points de S. Fond
Cette relation est une relation d’équivalence.
Les classes d’équivalence forment ce qu’on
appelle des composantes connexes.
2.4 Fond et Trou :
Le fond est l’ensemble des points connectés au
bord de l’image.
Un trou est un ensemble de points appartenant
à S mais non connecté au bord de l’image.
Exercices
1- Comment déterminer la bordure ∂S d’un Bordure S Trou
ensemble S ?
2- Comment déterminer les trous ?
3 - Description de la forme :
Objectif : Trouver des descripteurs pour représenter et décrire une forme.
Il existe deux catégories de descripteurs :
• Descripteurs linéiques : en suivant le contour
• Descripteurs surfaciques : en décomposant en élément de surface.
3.1 Le codage en chaîne (codage de Freeman) :
Un contour peut être représenté de trois manières différentes :
• Représentation raster :Image binaire où les pixels appartenant au contour sont
représentés par une valeur 1 (0 pour le fond)
• Représentation vectorielle : le contour est représenté par
une séquence de coordonnées (i,j) de points appartenant 1 3 2 1
au contour. 2 (i,j) 0 4 (i,j) 0
• Représentation par une chaîne de direction ou le codage 3 5 6 7
en chaîne : On enregistre le point de départ et on se
contente ensuite de représenter les directions empreintées. Pour cela, on peut choisir de
travailler en connexité-4 ou en connexité-8. Un code est affecté à chaque ditrection.
Exemple : (i0,j0)070076544345432210
Le codage en connexité-8 donne évidemment une chaîne plus longue que celle obtenue
dans le cas de la connexité-4.
Les points triples et les points aux angles posent des problèmes.
Point
Chaque sommet admet 4 fils : certains appartiennent à la forme, les autres appartiennent au
complémentaire.
Cette structure est commode pour certains calculs. Le calcul de l’aire de la forme s’obtient
facilement en comptant le nombre de feuilles pondérées par leur profondeur dans l’arbre.
3.5 Le squelette :
Le squelette peut être considéré comme un descripteur par élément de surface. En effet :
Par définition le squelette est l’ensemble des centres des disques maximaux inscrits dans
l’ensemble.
Si en plus du squelette on mémorise les rayons des disques maximaux associés à chaque
point du squelette, on peut reconstituer l’objet.
4 - Mesures :
Les mesures sont multiples :
• Mesures géométriques de base
• Propriétés topologiques
4.1 Mesures géométriques de base :
• Le périmètre
• La surface
• Le nombre d’Euler-Poincarré
a- Périmètre :
Le périmètre d’un objet se calcule aisément à partir d’une description du contour en prenant
soin de multiplier par 2 les directions diagonales.
Si Np désigne le nombre des directions paires
Ni désigne le nombre des directions impaires
Alors le périmètre=(N p + 2.Ni)*unité _ pixel
b- Aire :
La surface/ aire d’un objet se calcule en comptant le nombre de pixels appartenant à l’objet
multiplié par la surface élémentaire associée à un pixel.
c- Nombre d’Euler-Poincarré :
Soient : C: Le nombre de composantes connexes
T: Le nombre de trous
Le nombre d’Euler-Poincarré est donné par : E = C – T
Exemple : La forme ci-contre admet une composante
connexe et trois trous. Le nombre d’Euler-Poincarré est égal
alors à –2
d- Propriétés topologiques :
Une propriété est dite topologique se elle est préservée lors de l’étirement de forme. Î A
titre d’exemple, la distance métrique n ‘est pas topologique. Le nombre d’Euler-Poincarré et
le nombre de connexité le sont.
4.2 Indices de forme :
Un moyen très utilisé pour caractériser une forme est d’inscrire
l’objet dans une forme de référence telle que un rectangle, un
cercle,…
a- La rectangularité :
La rectangularité d’un objet est définie comme étant le rapport
entre l’aire de l’objet et l’aire du plus petit rectangle exinscrit. Ce