IV. Traitement d`une image en niveaux de gris

Transcription

IV. Traitement d`une image en niveaux de gris
IV. Traitement d'une image en niveaux de gris
1. Généralités
Image acquise par un capteur : ensemble de valeurs dépendant
- du capteur lui-même,
- du contexte d’acquisition.
! très grande quantité d’informations riches et variées.
Prétraitement : privilégier les informations plus spécifiquement recherchées
- en augmentant la dynamique du signal dans les zones d’intérêt,
- en sélectionnant à priori certaines classes d’événements.
2. Evaluation de la luminance d'un point réel
Soit A de coordonnées (x, y) réelles
L(P) la luminance d’un pixel P
L(A) ?
Extrapolation de L(A) suivant un modèle de surface :
- triangulation de la surface,
- extrapolation bilinéaire,
- carreau de surface bicubique (carreau de Bézier),
- …
soient Pi,j, Pi+1,j, Pi,j+1, Pi+1,j+1 les quatre pixels qui encadrent A
l2
l1
i+1
i
x
.A
j
j+1
lm = luminance moyenne des 4 pixels
si A est dans le triangle sud
dx = x-j
dy = y-i
l0 = L(Pi,j)
l1 = L(Pi,j+1) - L(Pi,j)
L( A) = l0 + l1 .dx + l2 . dy
l2 = 2 lm – l0 – l1
i+1
i+dy
A
i
j
j+dx
j+1
L( A) = l00+ l01 dx+ l10 dy + l11 dx dy
avec
dx = x-j et dy = y-i
l00 = L(Pi,j)
l10 = L(Pi+1,j) -L(Pi,j)
l01 = L(Pi,j+1) -L(Pi,j)
l11 = L(Pi,j) + L(Pi+1,j+1) - L(Pi+1,j) - L(Pi,j+1)
3. Histogramme
0
255
Histogramme d’une mosaïque utilisant 5 niveaux de gris différents
0
255
Histogramme
255
0
Histogramme cumulé
3.1 Modification d’histogramme
But : optimiser la dynamique des événements à analyser.
Modification de la dynamique des luminances par une fonction f croissante
! conservation des contrastes relatifs.
Pour la suite, on supposera que f est défini de l’espace des luminances dans
l’intervalle [0, 255].
3.2 Expansion de dynamique
f(x) = (x-xmin)*255/(xmax-xmin)
f(x) = max(0, min(255, (x-xmin)*255/(xmax-xmin) ) )
255
f
0
min
max
3.3 Expansion adaptative
Situation : sur ou sous exposition d'une partie de l'image.
La fonction de transformation varie suivant la position du pixel dans l'image.
Exemple : on effectue une expansion dynamique avec un min et un max qui varie
suivant la position dans l'image.
- on définit un maximum pour chacun des quatre coins de l'image.
- on extrapole un maximum à partir de ces quatre maxima et de la position du
pixel relative aux quatre coins (moyenne pondérée).
- de même pour le minimum.
3.4 Egalisation d’histogramme
ou rendre les niveaux de gris équiprobables
255
f
f(d)
f(c)
f(b)
f(a)
a b
c
d
0
ab
c
d
Histogramme d’une image et fonction f de transformation des luminances
N
Soit N le nbre de pixels ;
cumulIdéal = N/256 ;
évaluer l’histogramme cumulé : histoCumule[256] ;
y = 0 ;
pour x=0 à 255 faire
f[x] = couleur;
tant que histoCumule[x] > cumulIdéal alors
y = y +1 ;
cumul idéal = cumul idéal + N/256 ;
fin tant que
fin pour
3.5 Spécification d’histogramme
Généralisation de l’égalisation d’histogramme :
- Obtenir une distribution d’intensité de l’image voisine d’une distribution
spécifiée à l’avance.
- La distribution de référence peut-être soit fixée à priori, soit obtenue sur une
image ou une portion d’image qui sert d’apprentissage.
Construction de la fonction de transformation des luminances f(x) = y
Soit N le nbre de pixels ;
évaluer l’histogramme cumulé : histoCumule[256] ;
soit l’histogramme de référence: histoCumuleRef[256] ;
y = 0 ;
pour x=0 à 255 faire
f[x] = y;
tant que histoCumule[x] > histoCumuleRef[y] alors
y = y +1 ;
fin tant que
fin pour
4. Filtrage linéaire
Remplacer la valeur d’un pixel P par une combinaison linéaire des luminances
prises dans son voisinage.
Une matrice de convolution définit les poids de chaque luminance en fonction
de leurs positions relatives à P.
Deux grandes catégories de filtres :
- les filtres moyenneurs (les coefficients sont positifs) ou passe-bas
- les filtres différentiels (coefficients de somme nulle) ou passe-haut.
soit Ii l’image initiale ;
soit Ir l’image filtrée ;
soit A la matrice de convolution ;
Soit V le voisinage défini par A ;
pour tout pixel P dans Ii
s <- 0 ;
pour tout pixel Q dans V centré sur P
s <- s + A[Q-P] Ii[Q] ;
fin pour ;
Ir[P] <- s ;
fin pour ;
Remarques :
- un pixel résultat n’est pas nécessairement dans [0,255]
(voir § Expansion dynamique),
- définir une marge au bord de l’image (le voisinage doit être inclus dans
l’image) .
Exemple de structure de données pour un filtre linéaire :
int Fmoyen3x3[11] = {1, 9,
1, 1, 1,
1, 1, 1,
1, 1, 1} ;
/* rayon, dénominateur */
4.1 Filtre linéaire passe-bas (ou élimination d'événements furtifs)
Ils ont pour effet de lisser l’image en atténuant les variations locales
! régions plus homogènes
Quelques exemples de matrices de convolution :
1/9
1/9
1/9
1
4
7
10
7
4
1
1/9
1/9
1/9
4
12
26
33
26
12
4
1/9
1/9
1/9
7
26
51
71
51
26
7
10
33
71
91
71
33
10
1/16
1/16
1/16
7
26
51
71
51
26
7
1/16
1/2
1/16
1/16
1/16
1/16
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
1/25
4 1
12 4
26 7
33 10 filtre gaussien en représentation entière
26 7 dont la somme des coefficients vaut 1115
12 4
4 1
4.2 Filtre linéaire passe-haut
Ils ont pour effet de mettre en évidence les événements « furtifs » comme par
exemple les frontières (transitions) entre régions homogènes.
! Gradient de l’image
! Laplacien de l’image
Opérateurs de Sobel (variation des luminances dans les 2 directions X et Y)
pour déterminer le vecteur gradient :
-1 0 1
1 2 1
-2 0 2
0 0 0
-1 0 1
-1 -2 -1
dérivée suivant X
Dérivée suivant Y
Approximation du laplacien (somme des dérivées partielles secondes) :
0
0
-1
-1
-1
0
0
0
0
-1
0
0
0
-1
-3
-3
-3
-1
0
-1
-1
-1
0
-1
-2
-1
0
-1
-3
0
7
0
-3
-1
-1
8
-1
-1
-2
16
-2
-1
-1
-3
7
24
7
-3
-1
-1
-1
-1
0
-1
-2
-1
0
-1
-3
0
7
0
-3
-1
0
0
-1
0
0
0
-1
-3
-3
-3
-1
0
0
0
-1
-1
-1
0
0
Les frontières entre régions (contours) sont marquées par de fortes transitions
de part et d’autre de zéro : on parle de « passage par zéro »
5. Passe-bas non linéaires
5.1 Filtre médian
On considère que la valeur la plus représentative pour un pixel est la valeur
médiane pour un voisinage fixé autour du point considéré.
Algorithme :
soit V un voisinage d’un pixel p ;
soit n le nombre de pixels dans V ;
soit T un tableau ;
pour tout x dans V, mettre I[x] dans T ;
ordonner T ;
T[n/2] est la nouvelle luminance de p ;
Propriétés d’un filtre médian :
- élimine les événements de taille inférieure à la moitié de la taille de la fenêtre
d’observation (élimination de bruits type impulsionnel),
- les événements plus grands conservent leur dynamique,
- les frontières restent aussi plus précises.
Comparaison avec un filtre linéaire :
fenêtre d’observation centrée en i
2 2 10 10 2
i
10
Valeur médiane
2 2 2 10 10
tri
i+1
Filtre linéaire
2
i-2 i-1
i+2
2
Filtre médian
Filtre médian
Filtre linéaire
5.2 Filtre de Nagao
Dans une fenêtre 5x5 centrée sur l'élément de coordonnée (i, j) dans l'image
initiale, on considère les 9 zones ci-dessous et on calcule pour chacune d'elles la
moyenne mk et la variance (Sl=1,9(mk -xl)2 ).
On affecte Ir[i, j] avec la moyenne (ou la valeur médiane) de la zone ayant la
plus faible variance.
Propriétés :
- complexité plus grande qu’un filtre linéaire,
- conserve la dynamique des luminances le long des contours,
- respecte mieux les angles des formes.
5.3
Filtrage morphologique appliqué aux images en niveaux de gris
Soit I2 l’image initiale en niveau de gris et I3 l’image binaire 3D associée
I3[x, y, z] = 0 si z > I2[x, y]
I3[x, y, z] = 1 sinon
- érosion : l’élément structurant se trouve-t-il dans la forme (i.e. sous la nappe
des niveaux de gris) ?
- dilatation : l’élément structurant se trouve-t-il dans le fond (i.e. au dessus de
la nappe des niveaux de gris) ?
Comme pour les images 2D binaires
- ouverture : érosion suivie d’une dilatation
- fermeture : dilatation suivie d’une érosion.
On utilise souvent un l'élément structurant de type « disque horizontal »
- l'érosion : min des luminances observées dans un voisinage
- la dilatation : max des luminances observées dans un voisinage
luminance
élément structurant
érosion
ouverture

Documents pareils