Vous êtes sur la page 1sur 112

Traitement & Analyse d'images

Licence Informatique - 2005


Nazha SELMAOUI
http://tice.univ-nc.nc/~selmaoui/Teach/LMD/lmd.html
L'imagerie numérique
Synthèse d’images Analyse/Traitement d’images
Image réelle
Visualisation
• Projection de la scène 3D
• Élimination des parties cachées Numérisation
• Sources de lumières
• Textures
• Mosaïques d'images ..
Image numérique

Modèles/Information
2D/3D Analyse Traitement
• Extraction de formes • Lissage
• Reconstruction 3D .. • Restauration ..
Modeleur
Historique

1950-1970 : Images Rayons X


Amélioration de la qualité des images pour l’affichage
1970-1980 : Extraction automatique d’informations
seuillage, segmentation, extraction de contours
morphologie mathématique
MAIS Problèmes de modélisation!
Puissance de calcul insuffisante

1980- : Image 2D  modèle 3D


Analyse du mouvement
Application : Robotique et guidage de véhicule
Vision active
Perspectives : Acquisition
Analyse et interprétation de l’information image
Le traitement d’images et les autres disciplines

Analyse
Théorie du numérique Statistique
signal

Informatique Traitement
Théorie de
d’images l’information

Electronique Neurophysiologie
Théorie des psychophysique
Optique systèmes
Position du traitement d’images

Traitement
numérique des signaux

Traitement
d’images

Analyse de Reconnaissance Intelligence


scènes de formes artificielle
Domaines d’applications

• Aide à la conduite automobile (ASI/PSI)


• Spatial
• Médical
• Construction automobile
• Electronique
• Agriculture
• Robotique ...
Constitution d’un système de vision : Principe

Analyse
Acquisition

n
Applicatio
e
scèn

Caméra Traitement Interprétation

Vision par ordinateur

VISIONIQUE
Constitution d’un système de vision : Matériel

Processeur
Caméra Hôte
Interface Mémoire Processeur
E/S Images d’images
Moniteur
Constitution d’un système de vision : Matériel

• Interface E/S
– Numérisation des images
– Visualisation N/B, gris et Couleurs
• Mémoire Image
– Mémoire images source
– Mémoire images traitées
– différents formats : 256x256 ; 512x512 ; 1024 x
1024 ...
Constitution d’un système de vision : Matériel

• Processeur d’images
– Convolueur ; Morphologie mathématique;
Histogramme …
• Processeur hôte
– 3 rôles :
• commande le processeur d’images
• archivage des images
• traitements complémentaires de ceux du processeur
d’images
Les étapes du traitement numérique d’une
image
• 3 étapes fondamentales :
– Acquisition : scène physique  représentation
numérique.
– Traitement : Extraction de l’information pertinente
par segmentation  description structurelle de
l’image.
– Interprétation : description structurelle 
description sémantique.
Formation des images
• Le capteur est un semi conducteur qui convertit la
lumière en tension électrique en fonction du degré
de luminosité
• Le capteur constitué de matrice de cellules
sensibles appelées photodiodes qui effectuent cette
transformation tension-luminosité.
• Pour acquérir des images en couleurs, les
photodiodes sont associées à des filtres rouges,
verts et bleus (RVB), chacune de ces couleurs
étant échantillonnées sur 256 niveaux de
luminosité (2563)
Formation des images : les capteurs
• On distingue :
– les capteurs chimiques : systèmes biologique (œil)
– les films photographiques
– les capteurs photoélectriques (photo-diodes, CCD :
Charged Coupled Device ou Dispositif à Transfert de
Charge)
– les appareils numériques
• D'autres capteurs :
– en imagerie médicale : IRM, tomographie, …
– imagerie sismique
Formation des images : les capteurs
• Le signal obtenu est caractérisé par sa dimension
et sa nature :
– 1D : image linéique (oscilloscope, barrette CCD, …),
une seule ligne
– 2D : est une image, souvent plane, de nature :
• analogique : continue
• numérique : discrète

• ICI ON PARLERA DES IMAGES 2D


Représentation d'une image
(0,0) y

f(x,y) =intensité
lumineuse

x
Numérisation (discrétisation) de l'image (1)
• La représentation informatique d'une image est
nécessairement discrète
• Le signal 2D analogique est numérisé par :
– une discrétisation de l'espace : échantillonnage
– une discrétisation de la couleur : quantification
• Une image numérique est un ensemble de pixels
• Pixel : picture element
• Le pixel correspond à l'unité indivisible
permettant de stocker l'information relative à une
luminosité en une certaine position
Numérisation (discrétisation) de l'image (2)

• L'échantillonnage exige un pavage de l'espace qui


est motivé par :
– l'adéquation au système d'acquisition
– des relations géométriques ou topologiques telles que le
voisinage
• quelques exemples de pavage :

rectangulaire haxagonal triangulaire Rectangulaire


en
quiconque
Numérisation (discrétisation) de l'image (3)
• Le voisinage d'un pixel :
– pavage rectangulaire :

4-voisins 8-voisins

– pavage hexagonal :

6-voisins
Numérisation (discrétisation) de l'image (4)
• La distance entre pixels :
– distance Euclidienne : ( P ( i , j ), P ( k , j ))  ( i  k ) 2  ( j  l )2

– distance de Manhattan : ( P ( i , j ), P ( k , j ))  i  k  j  l

– distance "tour d'échiquier" : ( P ( i , j ), P ( k , j ))  max( i  k , j  l )

j l
Tour d'échiquier
i
Euclidienne

Manhattan
k
Numérisation (discrétisation) de l'image (5)
• La valeur d'un pixel représente la luminosité et
elle peut être :
– un scalaire : représentant un niveau de gris (du noir au
blanc)
– un vecteur : représentant une couleur composée dans le
système colorimétrique (RVB, HSL, Lab, XYZ, etc.)
• Une image est :
– dite en niveaux de gris : la valeur entière du pixel est
quantifié entre le noir (0) et le blanc (255)
– dite noir et blanc : la valeur est 0 (noir) 1 (blanc)
– dite couleur : les valeurs entières du pixel sont
quantifiées entre 0 et 255
Numérisation (discrétisation) de l'image (6)
• L'image est représentée comme un tableau de pixels dont
la taille est synonyme de précision ou résolution :
j m-1
1
00
1

f :IJ    Rk
(i , j )  f (i , j )
i
f(i,j) où I={0, 1, …, n-1}
et J={0, 1, …, m-1}


n-1
Numérisation (discrétisation) de l'image (7)

64 x 64 32 x 32 16 x 16
Le codage binaire d'une image
• Pour une image en niveaux de gris, si l'on code les
niveaux sur 8 bits, on pourra décrire 28=256
valeurs entières

• pour une image couleur à k composantes, et si


chaque composante est codé sur 8 bits, on aura
256k au total.
Les formats images (1)
• Une image est un tableau de pixels. Elle est
stockée soit dans un fichier sous la forme de texte,
soit dans la mémoire sous forme d'un vecteur
1ère ligne

0 1 n-1 (n-1)(m-1)

• Opérations :
– fichier  mémoire : lecture
– mémoire  fichier : écriture
• Informations nécessaires : nblignes, nbcolonnes,
format des pixels, compression éventuelle
Les formats images (2)
• Plusieurs formats de fichiers :
– formats simples : image est stockée dans un fichier texte
comportant un entête qui contient la dimension de l'image et le
format des pixels : PNM (portable anymap), PBM (portable
bitmap), PGM (portable grayscale map), PPM (portable pixmap)
• les fichiers correspondants sont constitués des éléments suivants :
1 un "nombre magique" pour identifier le type de fichiers : P1 ou P4 pour
PBM, P2 ou P5 pour PGM, P3 ou P6 pour PPM
2 la largeur de l'image en décimale codée en ASCII suivie d'un espace et
suivie de la longueur
3 uniquement pour PGM et PPM : l'intensité maximum présente dans
l'image
4 les valeurs décimales codées en ASCII dans le cas de P1, P2, P3; soit
directement en binaire sur 1 ou 2 octets dans le cas de P4, P5 et P6.
– formats compressés : l'information des compressée de manière à
réduire la taille des fichiers images :
Les formats images (3)
• Plusieurs formats de fichiers :
– formats compressés : l'information des compressée de
manière à réduire la taille des fichiers images :
• GIF (Graphics Interchange Format, Compuserve) :
compression LZW (un standard)
• JPEG (Joint Photographic Experts Group) : compression de la
lumière et de la teinte par DCT (Discrete Cosine Transform)
– d'autres formats : BMP, TIFF, …
• BMP image bitmap, représentée sous forme d'une matrice de
bits, à chaque pixel de l'image correspond un groupe de bits. Il
supporte un code de couleurs jusqu'à 24bits.
Les formats images (4)
P3
# CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2)
512 512
255
162 162 162 162 162 162 162 162 162 161 161 161 162 162 162
156 156 156 163 163 163 160 160 160 165 165 165 162 162 162
161 161 161 159 159 159 155 155 155 162 162 162 159 159 159
154 154 154 157 157 157 156 156 156 161 161 161 161 161 161
153 153 153 156 156 156 154 154 154 157 157 157 153 153 153
157 157 157 154 154 154 152 152 152 156 156 156 154 154 154
154 154 154 156 156 156 153 153 153 157 157 157 154 154 154
159 159 159 158 158 158 166 166 166 159 159 159 166 166 166
166 166 166 165 165 165 166 166 166 171 171 171 170 170 170
175 175 175 173 173 173 170 170 170 172 172 172 172 172 172
167 167 167 174 174 174 168 168 168 166 166 166 161 161 161
160 160 160 147 147 147 148 148 148 153 153 153 139 139 139
130 130 130 119 119 119 117 117 117 106 106 106 97 97 97
97 97 97 94 94 94 92 92 92 87 87 87 97 97 97
Notions de quantification et d'échantillonnage (1)

• Quantification : discrétisation de l'espace


des couleurs ou niveaux de gris, elle définit
le nombre de couleurs utiliser pour dessiner
l'image
• Échantillonnage : discrétisation de l'espace
2D, il définit le nombre de pixels pour
l'image (la résolution)
Notions de quantification et d'échantillonnage (2)
• Quantification :
Signal échantillonné Niveau de décision di

Niveaux de reconstruction ri
r3
Si d i  x  d i 1
alors xq  ri
r2

r1

Signal échantillonné
d1 d2 d3 d4
Notions de quantification et d'échantillonnage (2)
• Quantification :
– le principe : codage des valeurs réelles en valeurs
entières de manière optimale i.e. remplacer toute
valeur située entre 2 niveaux de décision
consécutifs di et di+1 par un niveau de
reconstruction ri avec [m,M] la gamme dynamique
du signal à quantifier
d0 d1 di di+1 dn

min(f)=m max(f)=M
r0 r1 ri rn-1
– contrainte : nouvelle image ressemblante le plus
possible à l'image initiale
Notions de quantification et d'échantillonnage (3)
• Quantification :
– on mesure l'erreur entre ces 2 images :
• soit f l'intensité de l'image initiale
• soit g l'intensité de l'image quantifiée : x  d i , d i  1  g ( x )  ri

– on suppose que les valeurs de f suivent une


variable aléatoire de densité p(f). L'erreur est
donnée (erreur quadratique moyenne):
•   E ( f  g )   ( f  g ) p( f )d ( f )    ( f  r ) p( f )df
M n 1 d
2 2 i 1 2
m d i
i 0 i

où n est le nombre total de niveaux de reconstruction


Notions de quantification et d'échantillonnage (4)
• Quantification :
– pour trouver les positions optimales des di et
des ri on doit annuler la dérivée de  :

 (d i  ri ) 2 p(d i )  (d i  ri 1 )2 p(d i )  0
d i
 d
  i 1 ( d i  ri ) 2 p( f )df  0 Pour tout i=1, .., n
ri di

– les solutions sont : d i 1


d i fp( f )df
ri  2d i  ri 1 ri  d i 1
d i p( f )df

– pour aller plus loin, on doit connaître p(f)


Notions de quantification et d'échantillonnage (5)
• Quantification :
– Si le nombre total des niveaux de quantification n est
suffisamment grande, une solution approchée simple et
élégante peut être trouvée en admettant que le pdf px(x)
est constant par intervalle sur les intervalles de
décision.
 
n 1 d i 1 1 n 1
  p(ri )d i 2
( f  ri ) df    p( ri ) (d i  1  ri ) 3  (d i  ri ) 3
3 i 0
i 0

– Les positions optimales des niveaux sont alors


données par : 
0 r 
d d
i
i i 1
r 2 i
– l'erreur quadratique est donc :
   p( r )(d  d ) 
n 1
1 3
i i 1 i
3 i 0
Notions de quantification et d'échantillonnage (6)

• Quantification :
– en résumé : ces résultats montrent que les
niveaux de transitions rk optimaux sont au
milieu entre les deux niveaux de reconstruction
optimaux dk et dk-1
Notions de quantification et d'échantillonnage (7)

• Quantification :
8bits
Une quantification trop
faible peut causer des
problèmes de faux
contours
4bits 3bits

1bit
Notions de quantification et d'échantillonnage (8)

• Échantillonnage :
– Étape nécessaire quand le signal sous-jacent est
analogique
– Dans le cas 1-D l’échantillonnage est bien expliqué, bien
connu, bien compris et bien utilisé.
– La généralisation aveugle de 1-D à 2-D est dangereuse!
• Souvent, les hypothèses sous-jacentes du cas 1-D sont oubliées
• La nature des signaux 2-D est presque toujours différente de celle
des signaux 1-D.
• Les contraintes des applications et des réalisations sont
différentes.
Notions de quantification et d'échantillonnage (9)

• Échantillonnage :
– Dans le cas 1-D on utilise le théorème bien connu
de l’échantillonnage : Un signal analogique peut
être entièrement reconstruit à partir de ses
échantillons s’il est échantillonné au moins au
double de sa fréquence maximum.
– La fréquence maximum doit être connue (peut
être mesurée avec des analyseurs de spectre)
– Le signal doit être stationnaire (transformée de
Fourier)
Notions de quantification et d'échantillonnage (10)

• Échantillonnage :
– Admettons que toutes les hypothèses soient
satisfaites : signaux stationnaires avec fréquences
maximum connues, nécessité de reconstituer le
signal analogique proche de l’échantillonnage
idéale
– Soit xa(u,v) un signal analogique 2-D. Sa
transformée de Fourier Xa (f,g) est définie par :
X a ( f , g )   xa ( u, v )e  2 i( fu gv )dudv
Notions de quantification et d'échantillonnage (11)
• Échantillonnage :
– L ’échantillonnage M-D de xa(u,v) est réalisé en prélevant des
échantillons espacés périodiquement. Le signal échantillonné est
donné par:
x ( ku, lv )  x( k , l )  xa ( u, v ) u  kv
v  l u
– Pour reconstituer xa(u,v) à partir de ses échantillons, les périodes
d’échantillonnages et doivent satisfaire
u vcertaines conditions.
– Un signal analogique 2-D xa(u,v) limité en bande à F et G peut
être reconstitué de ses échantillons, ssi et
1
u 
1 . La version échantillonnée xe(u,v) d signal 2’un
F
v 
2G x
analogique a(u,v) peut être vue comme le produit de xa(u,v) et
des impulsions delta 2D périodique e(u,v)
 avec  
xe ( u, v )  xa ( u, v ).e( u, v ) e ( u, v )    (u  ku, v  lv )
k   l  
Notions de quantification et d'échantillonnage (12)

• Échantillonnage :
– Au produit direct dans le domaine du signal ,
correspond le produit de convolution:
X e ( f , g )  X a ( f , g ) * E ( f , g )   X a ( f ' , g' ) E ( f  f ' , g  g' )df ' dg'

On peut montrer que



:
1 m n
E( f , g)   
uv m   n  
 ( f 
u
, g 
v
)

En utilisant les propriétés de convolution des


impulsions de Dirac :
y( , ) * (  a ,   b)   y(' , ' )(  ' ,   ' )d' d'  y(  a ,   b)
Notions de quantification et d'échantillonnage (13)
• Échantillonnage :
– La Transformée de Fourier du signal échantillonné est donnée par :
1   m n
Xe ( f , g)    Xa ( f  ,g  )
– La fonction Xe(f,g) estuobtenue
v m   npar u
  la duplication vpériodique de
Xa(f,g) dans les 2 dimensions avec l’inverse des périodes
d’échantillonnage et .
1 / u 2-D
– Ainsi, l’échantillonnage 1 / produit
v une succession de spectres
secondaires dans les 2 directions, proportionnels au spectre
principal Xa(f,g) .
– Si l ’échantillonnage est fait avec les impulsions de Dirac, les poids
sont tous égaux. (échantillonnage idéal).
– Si l’échantillonnage est fait avec les impulsions de largeur finie, les
poids sont donnés par la transformée de Fourier de cette impulsion.
Notions de quantification et d'échantillonnage (14)
• Échantillonnage
:
Notions de quantification et d'échantillonnage (15)

• Échantillonnage (résolution):

Une résolution trop faible


peut causer des problèmes
d’aliasing
Traitement & Prétraitement
• Le traitement, souvent appelé prétraitement : fait appel à
des techniques pour améliorer la qualité d'image.
• La notion de qualité est liée à la réalisation d'un objectif
 techniques différentes :
– Restauration : inverser l'effet du phénomène dégradant,
i.e. produire une image la plus proche possible de la
réalité physique.
– Amélioration (Enhancement) : satisfaire l'œil de
l'observateur humain.
– Compression : faciliter le traitement et surtout le
stockage par réduction de leur volume d'information.
• Une image est toujours bruitée
Traitement & Prétraitement
• Les sources de bruits :
– Bruits liés aux conditions de prise de vues : Le bougé ,
Problèmes liés à l’éclairage de la scène observée
– Bruits liés au capteur : capteur mal réglé, capteur de
mauvaise qualité (distorsion de la gamme des niveaux de
gris ou en flou)
– Bruits liés à l’échantillonnage (essentiellement des
problèmes de quantification (CCD)) : précision d’environ
1/51, problèmes dans le cas d’applications de grande
précision
– Bruits liés à la nature de la scène :
• Exemples : nuage sur les images satellitaires, poussières dans les
scènes industrielles, brouillard pour les scènes routières, etc.
Traitement & Prétraitement
• Filtrage de l’image :
• Le filtrage est une opération qui consiste à réduire le bruit
contenu dans une image. Il est considéré comme une
transformation de l’image.
• Deux catégories de méthodes :
– les méthodes du domaine spatial : ces méthodes se référent à l’image
elle même, et sont basées sur la manipulation directe des pixels,
– les méthodes du domaine fréquentiel : sont basées sur la modification
de la transformée de Fourier de l’image.
• On parlera aussi de :
– filtres linéaires exprimés sous forme de convolution
– filtres non linéaires
• Dans une opération de filtrage en domaine spatial, le pixel est
souvent considéré comme un individu (statistique) et on
cherche son identité grâce à son voisinage.
Traitement & Prétraitement (fondements)
• Les méthodes dans le domaine spatial :
– Le traitement (filtrage) est exprimé par une
transformation T de l’image f en une image g :
• g(x,y)=T[f(x,y)], T dépend du voisinage du pixel p(x,y)
– Si le voisinage du pixel p(x,y) qu’on notera souvent V(p)
ne contient que le pixel lui même alors T devient une
transformation de l’intensité s=T(r) : traitement point
– Si V(p) est plus grand, la transformation dépend des
valeurs des pixels voisins du pixel considéré. La plupart
de ces méthodes utilisent les pixels voisins appelés aussi
masks pondérés des coefficients, les valeurs de ces
coefficients déterminent la nature de la transformation .
Traitement & Prétraitement (fondements)
• Les méthodes dans le domaine fréquentiel :
– Soit f une image 2D, on appelle transformée de Fourier F
de f la fonction définit dans le domaine fréquentiel par :
F ( , )  F ( f )( , )   f ( x, y )e  2i (x y ) dudv
– Le filtrage fréquentiel est considéré comme une
convolution d’un opérateur invariant dans l’espace h et de
f:
En continu : g ( x, y )  f ( x, y ) * h( x, y )   f ( ,  )h( x   , y   ) dd

En discret : g (m, n)  f (m, n) * h( m, n)   f (i, j )h(m  i, n  j )


i j

– On a donc dans le domaine fréquentiel :


-1
G ( x, y )  H ( x, y ) F ( x, y ) g ( x, y )  F ( H ( x, y ) F ( x, y ))
Traitement & Prétraitement (fondements)
• parallèle domaine fréquentiel vs spatial:

domaine spatial f ( x, y )  g ( x, y )  f ( x, y ) * h ( x, y )

F -1
F F

domaine fréquentiel F ( x, y )  G ( x, y )  H ( x, y ) F ( x, y )

h est appelé filtre à réponse impulsionnelle (FRI)


Traitement & Prétraitement (fondements)
• Linéarité :
– h(a.f1+b. f2) = a.h(f1)+b.h(f2)
• Séparabilité :
– Une réponse impulsionnelle h est dite séparable selon x et y
ssi h( x, y )  hx ( x)hy ( y )
– En terme de filtrage d’une image par convolution :
g ( x, y )  f ( x, y ) * h( x, y )  h y ( y )(hx ( x) * f ( x, y ))
– Avantages d’un filtre séparable :
• Le filtrage d’un signal 2D est ramené au filtrage d’un signal 1D,
• Réduction du temps de calcul : 2n au lieu de n 2,
• Possibilité d’implémenter récursivement le filtrage.
• Filtre isotrope/anisotrope :
– Un filtre est isotrope si le filtrage réalisé est indépendant de
l’orientation des structures de l’image.
Traitement & Prétraitement
• Enhancement par traitement point :
– Quelques simples transformations :
• Image inverse (négative) :

N-1

T(r)=N-r
s

0 r N-1
Traitement & Prétraitement
• Enhancement par traitement point :
– Quelques simples transformations :
• Contraste stretching :

N-1 (r2,s2)

T(r)
s

(r1,s1)
0 r N-1
Traitement & Prétraitement
• Enhancement par traitement point :
– Quelques simples transformations :
• Contraste stretching :

N-1 N-1

T(r) T(r)
s s

0 r N-1 0 r N-1
Dilatation des zones claires Dilatation des zones sombres
Traitement & Prétraitement
• Enhancement par traitement point :
– Quelques simples transformations :
• Compression de l’étendue de la dynamique :

N-1

s T (r )  c * log(1  r )
T(r)
c  255 / log(1  R )

0 r
R
Traitement & Prétraitement
• Enhancement par traitement point :
– Quelques simples transformations :
• Extraction d’une fenêtre d’intensité (slicing intensité) :
N-1 N-1

s s

0 a b N-1 0 a b N-1
r r
Traitement & Prétraitement
• Enhancement par traitement point :
– Modification de l’histogramme :
• L’histogramme est une fonction hist(i) permettant de
donner la fréquence d’apparition des différents
niveaux de gris i qui composent l’image.
• En abscisse on représente les niveaux de gris et en
ordonnée leurs fréquences d’apparition.
• L’histogramme des niveaux de gris nous informe sur
la concentration de l’image.
• Pour une image couleur, il y a un histogramme par
composante
Traitement & Prétraitement
• Enhancement par traitement point :
– Modification de l’histogramme :
• L'histogramme peut être normalisé pour donner une
estimation de la densité de probabilité des pixels :
hist (i )
p (i )   p(i)  1
 hist ( j ) i
j
• La fonction de répartition H est l’histogramme cumulé
donnant la probabilité d’obtenir un niveau de gris
inférieur ou égal à la taille de l’image.
• Un histogramme peut avoir un pic (unimodale), deux
pics (bimodale) ou plusieurs pics (multimodale).
• L’histogramme des niveaux de gris nous informe sur
la concentration de l’image
Traitement & Prétraitement
• Enhancement par traitement point :
– Modification de l’histogramme :
• Recadrage de l’histogramme
– Quand les valeurs de l’histogramme varient dans l’intervalle
[a,b], toutes les couleurs ne sont pas représentées, la
transformation T qui permet d’étaler les valeurs dans
l’intervalle [0,N-1] s’appelle recadrage.
N-1
T : [ a , b]  [0, N  1]
s i  i '  T (i )  ( N  1)
na
ba

0 a b N-1
r
Traitement & Prétraitement
• Enhancement par traitement point :
– Modification de l’histogramme :
• Égalisation de l’histogramme
– Dans une image, il peut y avoir une majorité de pixels ayant
une valeur inférieure (ou supérieure) à la luminance
moyenne.
– Une modification d'histogramme très répandue pour
augmenter le contraste de manière automatique est la
linéarisation d'histogramme. Le principe est de transformer
l'image de manière à obtenir un histogramme plat, soit une
distribution uniforme des intensités. Cela revient à maximiser
l'entropie de l'image et donc à obtenir théoriquement une
image présentant une information maximale.
Traitement & Prétraitement
• Enhancement par traitement point :
– Modification de l’histogramme :
• Égalisation de l’histogramme

– T est monotone (souvent croissante) sur l'intervalle. Cette


condition assurant que l'ordre des intensités est préservé
après transformation.

– 0  T (i )  N  1 Pour0  i  N  1 garantit que la nouvelle


image est cohérente avec les niveaux d'intensité autorisés.
Traitement & Prétraitement
• Enhancement par traitement point :
– Modification de l’histogramme :
• Égalisation de l’histogramme
– On suppose que les valeurs de l’image f(i,j) suivent une
variable aléatoire de fonction de densité de probabilité pf(f)
estimée par l’histogramme de l’image pˆ f ( f ) définie par :
n où n est le nombre total de pixel.
pˆ f ( f k )  k
n
Soit g=T(f) l’image transformée (T : non linéaire)
pg(g) la fonction de densité de probabilité de g uniforme
donnée par pg(g)=1/(N-1) vérifie l’équation :
dr dT ( r )
p g ( s )  p f (r ) pg (s)  pr ( r )
ds donc dr
Traitement & Prétraitement
• Enhancement par traitement point :
– Modification de l’histogramme :
• Égalisation de l’histogramme
– Cette équation différentielle admet une solution unique :
r
T (r )  ( N  1) *  p ( w) dw
0 r

– Ce résultat s’écrit en discret :


r
 hist (i)
T (r )  ( N  1) * Ni 01
 hist (i)
i 0
Traitement & Prétraitement
• Enhancement par traitement point :
– Modification de l’histogramme :
• Égalisation de l’histogramme
– A noter que dans le cas discret, et du fait que l'histogramme
soit une approximation d'une fonction de densité de
probabilité, l'histogramme résultant est très rarement
parfaitement plat.
– Pour une image majoritairement claire la linéarisation va
augmenter la dynamique de la partie sombre de
l'histogramme au détriment de la partie claire.
– Permet de faire des comparaisons d'images sur une même
base.
– L'opération peut s'effectuer par régions : linéarisation
adaptative.
Traitement & Prétraitement
• Enhancement par traitement point :
– Modification de l’histogramme :
• Égalisation de l’histogramme
Traitement & Prétraitement
• Filtrage spatial local ou semi-local :
– Rappelons le filtrage à réponse impulsionnelle (FIR) :
g (m, n)  f ( m, n) * h(m, n)   h(i, j ) f (m  i, n  j )
– On peut considérer ce filtragei sur
j
un support fini (région)
[0,M1]x[0,M2] en prenant h nulle en dehors de ce support :
M1 1 M 2 1
  h(i, j ) f (m  i, n  j )
g (m, n) 
i 0 j 0
– En général le support est symétrique :  1,1   2 , 2 
centré sur le pixel à traiter
1 2
– On a :
g (m, n)    h(i, j ) f (m  i, n  j )
i  1 j   2

– Cette opération s’appelle convolution discrète de l’image


par un masque
Traitement & Prétraitement
• Filtrage spatial local ou semi-local :
– Lissage local :
• Le lissage local supprime le bruit, ou les petites
variations, présent dans une image. L'intensité d'un
pixel est transformé en fonction des intensités sur un
petit voisinage du pixel. Le lissage est utile dans le cas
des bruits “poivre et sel”, c’est-`a-dire dans le cas des
bruits très localisés et très perturbant. Ces bruits
induisent des trous ou des coupures sur des formes ou
des frontières pas très nettes. La solution est alors
d’appliquer un lissage local ou semi-local.
Traitement & Prétraitement
• Filtrage spatial local ou semi-local :
– Lissage local : moyennage
• Sa réponse impulsionnelle est h(i, j )  1 /(21  1)(2 2  1)
1 2
1
• On a : g (m, n)    f ( m  i, n  j )
(21  1)(2 2  1) i  1 j   2

• En général h doit vérifier :


1 2
  h(i, j )  1
i  1 j   2
Traitement & Prétraitement
• Filtrage spatial local ou semi-local :
– Lissage local : moyennage
• h s’appelle le masque de convolution
1 1 1
• Moyennage sur un voisinage 3x3 : 1
h  1 1 1
9 
1 1 1
• Le moyennage est un filtre passe-bas.
• Rend l'image floue, en particulier les contours.
• Élimine les dégradations locales de faibles dimensions.
Valide lorsque les objets présents dans l'image sont de
dimensions supérieures aux dégradations.
Traitement & Prétraitement
• Filtrage spatial local ou semi-local :
– Lissage local : moyennage
• Une amélioration du filtre moyenne consiste à jouer
sur les valeurs des coefficients du masque :
1 1 1
1
h  1 2 1
10  
1 1 1
• C'est le cas des filtres binomiaux pour lesquels les
valeurs des coefficients sont générés par le triangle de
Pascal : 1 2 1 
1
h 2 4 2
16  
1 2 1 
Traitement & Prétraitement
• Filtrage spatial local ou semi-local :
– Lissage local : filtre gaussien
• Utilisé par David Marr, l’un des pionniers du
traitement de l’image [Marr80], La réponse
2 2
impulsionnelle est donnée par : h( x, y )  1 x  y
2
. exp( 2
)
2 2
• Propriétés :
– Séparable, isotrope, non récursif
• Mise en oeuvre :
1 4 7 4 1  Si σ est petit : approximation par
4 16 26 16 4 masque de convolution, approximation
1  
récursive du filtre, convolutions successives
7 26 41 26 7 
273   (la combinaison de gaussiennes donne une
 4 16 26 16 4  gaussienne)
1 4 7 4 1 
Traitement & Prétraitement
• Filtrage spatial local ou semi-local :
– Lissage local : filtre exponentiel Shen :
C
h( x, y )  . exp(  ( x  y ))
4
– Lissage local (non linéaire) : filtre médian
• Les filtres de moyennage ont tendance à rendre l'image
floue et donc à perdre de l'informations sur les
contours caractérisés par des fortes variations
d'intensité. Pour diminuer cet effet, on ne moyenne
plus sur le voisinage mais on prend la valeur médiane
sur ce voisinage. C'est le filtre médian.
Traitement & Prétraitement
• Filtrage spatial local ou semi-local :
– Lissage local (non linéaire) : filtre médian
• Exemple :

12 13 14 15 18 19 21 27 29
Valeurs triées dans un tableau Valeur médiane

15 18 14 15 18 14
29 27 13 29 18 13
12 19 21 12 19 21
Zone de l’image Zone de l’image
avant filtrage après filtrage
Traitement & Prétraitement

• Filtrage spatial local ou semi-local :


– Lissage local (non linéaire) : filtre médian
• Filtre non-linéaire.
• Élimine le bruit impulsionnel.
• Préserve l'information de contour et peut être appliqué
itérativement.
• Élimine les contours très ns. Un voisinage adapté
permet de limiter cet effet.
Segmentation
• L'analyse d'images a pour but l'extraction de
l'information caractéristique contenue dans une image.
• Le résultat s'appelle très souvent la description
structurelle.
• Le résultat peut être une image ou une structure de
données permettant une description des entités
contenues dans l'image : informations qualitatives et
quantitatives.
• Essentiellement, l'analyse de l'image fait appel à la
segmentation : association à chaque pixel de l'image
un label en s'appuyant sur l'information intensité et sa
distribution spatiale.
Segmentation
• La segmentation d'images est un domaine
vaste où l'on retrouve de très nombreuses
approches :
– Le seuillage
– Étiquetage contextuel : la relaxation
– La détection de frontières
– La recherche de régions
– L’approche de la classification
Segmentation
• Le seuillage :
– Le seuillage segmente une image en plusieurs
classes (formes) en n'utilisant que l'histogramme.
– Une classe est caractérisée par sa distribution de
niveaux de gris. A chaque pic de l'histogramme
est associée une classe
– Il existe plusieurs méthodes de seuillage d'un
histogramme. Elles sont adaptées à des
histogrammes avec des pics séparés.
– Le plus souvent ces méthodes s’utilisent dans le
cas particulier de la segmentation en deux classes:
fond et forme (i.e. passage à une image binaire).
Segmentation
• Le seuillage manuelle:
– Le seuillage manuelle consiste à choisir un seuil
arbitraire (i : niveau de gris) (ou plusieurs seuils
dans le cas d’un histogramme multi-modale:

N-1
si f (i , j )  k f (i , j )  0
s si f (i , j )  k f (i , j )  N  1

0 k N-1
r
Segmentation
• Le seuillage automatique ou dynamique :
– Le seuillage dynamique consiste à déterminer
automatiquement le seuil i qui sépare le fond de
la forme.
– On réalise l’histogramme de l’image à étudié qui
représente deux pics. Le but est de chercher la
valeur du seuil i correspondante à la vallée entre
les 2 pics :
zone d’étude
2
1
Les 2 pics sont
Assimilés à 2
gaussiennes
0 1 2
Segmentation
• Le seuillage automatique ou dynamique :
– Détection de vallées :
• Cette technique est la plus intuitive. On suppose que
chaque classe correspond à une gamme distincte de
niveaux de gris. L'histogramme est alors multi-modal.
La position des minima de l'histogramme h permet de
fixer les (m-1) seuils nécessaires pour séparer les m
classes.
• En termes mathématiques, les seuils si sont obtenus
par: h(si) = Min [ h(k) ] pour k dans ]mi,mi+1[, où mi
et mi+1 sont les valeurs moyennes (ou les modes) de
l'intensité lumineuse dans les classes Ci et Ci+1.
Segmentation
• Le seuillage automatique ou dynamique :
– Détection de vallées :
• Malgré le développement de techniques robustes
visant à faciliter la détection des vallées, cette
méthode, bien que simple, est très peu appliquée car
les histogrammes traités sont le plus souvent bruités et
unimodaux.
Segmentation
• Le seuillage automatique ou dynamique :
– Minimisation de la variance :
• La répartition des pixels en N classes est un problème
classique de classification. Le choix des seuils s i permet de
détecter m classes auxquels on peut associer taille (t i),
moyenne (mi) et variance Vi par :
ti   h ( j )
Di
1
mi  
ti Di
j.h( j )

1
Vi   ( j  mi ) 2 .h( j )
ti Di
où h est l'histogramme normalisé; Di = [si-1,si[ est la gamme de
niveaux de gris correspondant à la classe C i (par hypothèse, s0
= 0) .
Segmentation
• Le seuillage automatique ou dynamique :
– Minimisation de la variance :
• A partir de ces indicateurs statistiques, on peut construire la
variance intraclasse totale W par : W   ti .Vi
i

• Le meilleur seuillage dans cette approche correspond à une


minimisation de la variance intraclasse (méthode de Fisher).
Technique difficilement applicable lorsque le nombre de
classes est élevé.
• On teste exhaustivement tous les (N-1)-uples (s1,...,sN-1)
possibles. De plus, il faut que chaque classe ait une taille
significative en nombre de niveaux de gris pour que les
indicateurs statistiques aient un sens.
Segmentation
• Le seuillage automatique ou dynamique :
– Minimisation de la variance :
• Dans le cas de la binarisation (N=2), cette méthode est
performante.
Plus récemment, Otsu a proposé de réaliser une maximisation
de la variance inter-classe qui, dans le cas de la binarisation,
s'exprime par: B  t0 .t1 (m0  m1 ) 2 , ce qui est rigoureusement
équivalent puisque l'on a la relation : W + B = constante
• Cependant, la méthode de Otsu est plus intéressante d'un point de
vue calculatoire car elle ne nécessite pas de calcul de variances.
• D'autres critères statistiques sont utilisables : test de Student,
distance de Fisher (pour laquelle il existe un algorithme
optimisé), ...
Segmentation
• Le seuillage automatique ou dynamique :
– Seuillage entropique :
• Le seuillage entropique est une technique dérivée de la
théorie de l'information. Les seuils sont déterminés de
manière à maximiser l'entropie E résultant du
découpage de l'histogramme h en plusieurs classes. En
effet, l'entropie mesure la quantité d'information portée
par un groupe. Pour un nombre de seuils fixe, on
cherche à ce que les classes résultantes portent le
maximum d'information.
• L'entropie totale est calculée de la manière suivante :
E   E (C i )
i
où Ci désigne la classe.
Segmentation
• Le seuillage automatique ou dynamique :
– Seuillage entropique :
E (Ci )    p j . log 2 ( p j )
• jDi

Où Di est l’ensemble des niveaux de gris j associés à la


classe Ci et pj la probabilité a posteriori du niveau de
gris j, estimée par : pj = h(j) / taille_image

• La notion d'entropie n'est pas liée à une caractéristique


visuelle. C'est pourquoi l'image résultat parait le plus
souvent de moins bonne qualité qu'une image obtenue
par une des techniques présentées dans cette partie.
Segmentation
• Le seuillage automatique ou dynamique :
– Minimisation de l’erreur de seuillage :
• La minimisation de l'erreur de seuillage nécessite de
faire des hypothèses quant à la nature des distributions
de niveaux de gris correspondant aux classes Ci. Le
plus souvent, on utilise le modèle gaussien. On
construit donc un histogramme estimé T par :
N
T ( x)   Ai .N i ( x)
i 1

où Ai est l'amplitude de la distribution et Ni une


distribution gaussienne de paramètres mi (moyenne) et
si (écart-type) 1  1 (( x  m ) / s ) 2
i i
N i ( x)  2
si e
Segmentation
• Le seuillage automatique ou dynamique :
– Minimisation de l’erreur de seuillage :
• On fait des hypothèses de séparabilité des modalités :
x  mi , mi 1 , N j ( x)  0 si j  i ou j  i  1

• On se situe dans le domaine continue pour exprimer


les erreurs de classification
Segmentation
• Le seuillage automatique ou dynamique :
– Maximisation du contraste :
• Cette technique utilise directement le répartition spatiale des
niveaux de gris f(i,j) dans l'image.
• L'objectif est de trouver le seuil qui va introduire le
maximum de contraste dans l'image résultat. Soit s un seuil
donné. On construit l'ensemble K par :

où (p,q) sont 2Kpixels


 
( s )  ( p, q ) / f ( p )  s  f ( q )
voisins avec un ordre de voisinage fixé
• On associe à K le contraste C défini par :

C (s)   min( f ( p)  s , f (q)  s )


K (s)
Segmentation
• Le seuillage automatique ou dynamique :
– Maximisation du contraste :
• La valeur retenue pour le seuil sera celle qui
maximisera le ratio C(s)/Card[K(s)]. Cette
méthode en apparence complexe est très
intéressante car elle introduit la notion de
contexte dans l'étude des couples de pixels
voisins. L'histogramme des niveaux de gris
n'est plus la seule source d'information. Cette
idée sert de base aux méthodes contextuelles.
Segmentation
• Détection de frontières :
– La recherche des contours d’objets est un des
problèmes les plus étudiés depuis l'origine des
travaux sur l'imagerie.
– Dû à la nature très intuitive du contour qui apparaît
très naturellement comme l'indice visuel idéal dans la
plus grande partie des situations.
– les contours sont les lieux de variations significatives
de l'information niveaux de gris
– Dans une image de mosaïque de régions parfaitement
homogènes, les transitions sont strictes, et le contour
doit être une chaîne de pixels d'épaisseur 1
Segmentation
• Détection de frontières :
– La notion de contour étant reliée à celle de
variation  une évaluation de la variation en
chaque pixel.
– Une variation existera si le gradient est
localement maximum ou si la dérivée seconde (à
définir dans un espace bi-dimensionnel) présente
un passage par zéro.
Segmentation
• Détection de frontières :

Profile de l’image

Dérivée première

Dérivée seconde
Segmentation
• Détection de frontières :
– Définition d’un contour :
f Lieu d’une forte transition

A B

A B profil

– Différents types de contours :

Marche Toit Pointe


Segmentation
• Détection de frontières :
– Principe de détection : filtre passe haut

• Approche gradient :
t
 f f 
f (i, j )  (i, j ), (i, j ) 
 x y 

• Approche laplacien :
 2 f  2
f 
 
 x 2 (i, j )  y 2 (i, j ) 
 
Segmentation
• Détection de frontières :
– Mise en oeuvre de filtres dérivés

• Propriété du produit de convolution :


 
f x ( x, y )  ( f ( x, y ) * h( x, y ))  f ( x, y ) * h( x, y )
x x
 
f y ( x, y )  ( f ( x, y ) * h( x, y ))  f ( x, y ) * h( x, y )
y y

m n
f d ( x, y )    f ( x  i, y  j ).hd (i, j )
i m j n

d peut être une direction quelconque


Segmentation
• Détection de frontières :
– Calcul d'un gradient :
• Le gradient, en un pixel, est un vecteur caractérisé par
– son amplitude
 f2 f2
x y

f   f x  f y
max( f , f )
 x y

– sa direction :
fy
  arctan( )
fx
Segmentation
• Détection de frontières :
– Calcul d'un gradient :
• Filtres passe-haut : (dérivation par différences finies)
– Filtres séparables : H  H x .H y

– Exemple : f
f ( x  h, y )  f ( x, y )  h ( x, y )  h. ( x, y )
x
f
f ( x  h, y )  f ( x, y )  h ( x, y )  h. ( x, y )
x
on fait la différence et en déduit une estimation de fx
f
f ( x  h, y )  f ( x  h, y )  2.h. ( x, y )
x

h est le pas de discrétisation, en image h=1 :


f x (i, j )  1 2 ( f ( x  1, y )  f ( x  1, y ))
Segmentation
• Détection de frontières :
– Calcul d'un gradient :
• Filtre de Prewitt :
– Masque : -1 0 1
-1 0 1
-1 0 1

10 10 90 100 100 0 240 270 30 0


10 10 90 100 100 0 240 270 30 0
10 10 90 100 100 0 240 272 30 0
10 10 90 100 100 0 240 270 30 0
10 10 90 100 100 0 240 270 30 0
Segmentation
• Détection de frontières :
– Calcul d'un gradient :
• Filtres passe-haut : (dérivation par différences finies)
– Inconvénients : 2 directions sont représentées
– Solutions : calculer les dérivées dans plusieurs directions
(0°,45°,90°,135°, etc.)
• Quelques opérateurs connus : Prewitt, Sobel, Roberts,
Kirsh, etc…
– Prewitt   1 0 1   1  1  1
1
  1
 
hx  3   1 0 1 hy  3  0 0 0 
  1 0 1 1 1 1
   
– Sobel
 1 0 1   1  2  1
1
  1
 
hx  4   2 0 2  hy  4  0 0 0
 1 0 1 1 2 1 
  
Segmentation
• Détection de frontières :
– Calcul d'un gradient :
• Quelques opérateurs connus :
– Roberts :
0 0 0   0 0 0
   
hx   0 1 0  hy   0 0 1 
 0 0  1  0 1 0
   
– Kirsch :
  3  3 5   3  3  3
1
  1
 
hx  15   3 0 5  h y  15   3 0  3 
  3  3 5  5 5 5 
  
Segmentation
• Détection de frontières :
– Calcul d'un gradient :  1 0 1
 
• Quelques opérateurs connus : 1
h0  4   2 0 2 
– Sobel 4 directions :  1 0 1
 
  2 1 0   1  2  1  0 1 2
     
h45 1
 4  1 0 1 h90 1
 4 0 0 0  h135  1 1 0 1
4
 0 1 2  1 2 1    2 1 0
    
– Kirsch 4 directions :   3  3  3
1
 
h90  15   3 0  3 
  3  3 5   3  3  3  5 5 5 
1
  1
  
h0  15   3 0 5  h45  15   3 0 5 
3 5 3 5 5 
  3  3 5
   5   
h135 1
 15   3 0 5 
  3  3  3
 
Segmentation
• Détection de frontières :
– Calcul d'un gradient :
• Quelques opérateurs connus :
– Prewitt 4 directions :

  1 1 1   1  1 1
   
1
h0  5   1  2 1 1
h45  5   1  2 1
  1 1 1 1 
   1 1

  1  1  1 1 1 1
1
   
h90  5 1  2 1  h135 1
 5   1  2 1
1 1 1    1  1 1
  
Segmentation
• Détection de frontières :
– Calcul d'un gradient :
• Quelques opérateurs connus Rosenfled:
– La texture est caractérisée par des fortes transitions mais peu
intéressante en termes de contours d'objets. Le plus souvent,
on ramène les calculs de variations entre valeurs de pixels à
des calculs entre valeurs moyennes sur des fenêtres centrées
sur ces pixels :
f x ( x, y )  f * ( x  r , y )  f * ( x  r  1, y )

f y ( x, y )  f * ( x, y  r )  f * ( x, y  r  1)

f * ( x, y )  (2.r  1)  2  f ( x  i, y  j )
i  j r

r est la taille de la fenêtre utilisée.


Segmentation
• Détection de frontières :
– Calcul du laplacien :
• Les points de contour sont situés aux passages par zéro
du laplacien : 2 f 2 f
f (i, j )  2
(i, j )  2
(i, j )
x y
• En faisant une approximation par différences finies on
trouve les masques suivants :

 0 1 0 1 1 1
   
 1  4 1  1  8 1
 0 1 0 1 1 1
   
Segmentation
• Détection de frontières :
– Calcul du laplacien :
• Avantages
– proche du mécanisme de la vision humaine
– Un seul paramètre
– Pas de seuil de significativité de l'amplitude
– Contours fermés
• Inconvénients
– Plus grande sensibilité au bruit
– Pas d'information sur l'orientation du contour
Segmentation
• Détection de frontières :
– Les approches optimales :
• Critères de Canny
• Filtre de Shen-Castan
• Filtre de Deriche
• Filtre gaussien
Segmentation
• Détection de frontières :
– Les approches optimales :
• Critères de Canny (Critères de performance) :
– Détection : l’opérateur doit donner une réponse au voisinage
d’un contour,
– Localisation : le contour doit être localisé avec précision,
– Réponse unique : un contour doit provoquer une seule
réponse de l’opérateur.
Segmentation
• Détection de frontières :
– Les approches optimales :
• Filtre de Shen-Castan :
 x
h( x)  ce

1  e 
c
1  e 
Coefficient de normalisation
Segmentation
• Détection de frontières :
– Les approches optimales :
• Filtre de Deriche : h( x)  k ( x  1)e
 x

(1  e  ) 2
k
1  2e   e  2

- Donne une seule réponse en


présence d’un contour (contrairement
au filtre de Shen-Castan dans certains
cas)
- mais est moins précis que le filtre
de Shen-Castan
- Anisotrope
Segmentation
• Détection de frontières :
– Les approches optimales :
• Filtre gaussien:
x2  y2

1 2 2
H (( x, y ), )  2
e
2
Segmentation
• Détection de frontières :
– Du gradient au contour :
• Une fois le gradient calculé, il faut enchaîner la phase de
détection des pixels du contour, par recherche des
maxima de la dérivée ou par passage de zéro de la
dérivée seconde (zero-crossing)
• Détermination des seuils sur l'amplitude :
– On fixe 2 seuils sb un seuil bas et sh un seuil haut tels que :
– si f ( x, y )  sb alors (x,y) n’est pas un
point contour
si f ( x, y )  sh
– alors (x,y) n’est pas un point contour
si sb  f ( x, y )  sh
– alors l'appartenance à
un contour sera fonction du contexte

Vous aimerez peut-être aussi