Uploaded by Van Money

02-Traitement de base

advertisement
Histogramme d'une image
Nombre
de pixels
Niveau de gris


L'histogramme représente la distribution des niveaux de
gris (ou de couleurs) dans une image
H(k) = nombre de pixels de l'image ayant la valeur k.
CVIPTools : File>Show Histogram
2
Histogramme d'une image
PI(k)
1
k
PI(k)
1
0.5
k
PI(k)
0.1
k
Dynamique d'une image = [valeur_min,valeur_max]
Source : Tal Hassner. Computer Vision. Weizmann Institute of Science (Israel).
3
Luminance ou brillance d'une image


La luminance (ou brillance) est définie comme la
moyenne de tous les pixels de l'image.
Dans les deux images suivantes, seule la luminance est
différente :
CVIPTools : Utilities>Stats>Image Statistics (Mean)
Source : Eric Favier. L'analyse et le traitement des images. ENISE (France).
4
Contraste d'une image

Le contraste peut être défini de plusieurs façons :

Ecart-type des variations des niveaux de gris

Variation entre niveaux de gris min et max
CVIPTools : Utilities>Stats>Image Statistics (S.D.)
5
Contraste d'une image
Les deux images suivantes possèdent un contraste différent :
Source : Eric Favier. L'analyse et le traitement des images. ENISE (France).
6
Exemples de contrastes d’une image
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
7
Amélioration du contraste

Plusieurs méthodes possibles :





Transformation linéaire
Transformation linéaire avec saturation
Transformation linéaire par morceau
Transformation non-linéaire
Égalisation de l’histogramme
CVIPTools : Enhancement>Histograms
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
8
Transformation linéaire
I’
max− min
255− 0
=
I i , j − min I ' i , j − 0
Alors :
255
I ' i , j =
 I i , j − min 
max− min
255
I’(i,j
)
0
min I(i,j) max
I
−min) [ ]
255
(
I
(
i
,
j
)
−min) avec
∈ 0,1
I ' (i, i) =
(
I
(
i
,
j
)
max −min
max −min
CVIPTools : Enhancement>Histograms>Linear Modification
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
9
Transformation linéaire
%
255
255
0
255
min
max
255
min
max
255
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
0
255
10
Implémentation…
Pour i=1 à nblig
Pour j=1 à nbcol
I’(i,j) = 255*(I(i,j)-minI)
/(maxI-minI);
Pas optimal
 Utilisation d’une LUT
(Look Up Table)
/* Initialisation de la LUT */
Pour i=0 à 255
LUT[i]=255*(i-minI)/(maxI-minI);
/* Initialisation de la LUT */
Pour i=1 à nblig
Pour j=1 à nbcol
I’(i,j) =LUT[I(i,j)];
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
11
Transformation linéaire avec saturation
%
255
255
0
255
Smin
Smax
255
min
Smin
max
255
Smax
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
0
255
12
Transformation linéaire avec saturation
255
I ' (i, j ) =
( I (i, j ) −Smin )
Smax −Smin
I ' (i, j ) ≤ 0 ⇒ I ' (i, j ) = 0
I ' (i, j ) ≥ 255 ⇒ I ' (i, j ) = 255
min(I (i, j )) ≤ Smin < Smax ≤ max(I (i, j ))
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
13
Transformation linéaire par morceaux
%
255
255
0
255
Smin
Smax
255
min
max
Smin Smax
S
255
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
0
255
14
Transformation linéaire par morceaux
Exemple d’une
fonction ad-hoc
de modification
du contraste de
l’image.
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
15
Transformation non-linéaire
Ex: Correction
gamma (g)
I
émise =k⋅n
1
γ
γ
⇒n'=n
γ écran ∈[ 1 . 3, 3 . 0 ]
1 1
γ oeil≈ à
2 3
CVIPTools : Enhancement>Histograms>Histogram Specificationc
16
Autres fonctions possibles
255
255
255
255
Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.
17
Correction de la dynamique de l'image
Image originale
Image restaurée
CVIPTools : Utilities>Stats>Image Data Range + Enhancement>Histograms>Histogram Stretch
Source : www.crans.ens-cachan.fr/~genest/histogramme.pdf
18
Correction de la dynamique de l'image
Dans le cas où l'histogramme initial occupe toute la plage de
dynamique, aucun changement n'est visible.
Source : www.crans.ens-cachan.fr/~genest/histogramme.pdf
19
Egalisation de l'histogramme
3500
3500
3000
3000
2500
2500
2000
2000
1500
1500
1000
1000
500
500
0
0
50
100
150
200
Image originale
250
0
0
50
100
150
200
250
Image plus contrastée
CVIPTools : Enhancement>Histograms>Histogram Equalization
Source : Tal Hassner. Computer Vision. Weizmann Institute of Science (Israel).
20
Egalisation de l'histogramme

Pour améliorer le contraste, on cherche à aplanir l’histogramme
h ideal  k 
hk 
k
k

Etape 1 : Calcul de l'histogramme
hi  i∈[ 0, 255]

Etape 2 : Normalisation de l'histogramme
hi 
h n i =
Nbp
i∈[ 0, 255]
C i = ∑ h n  j 
i∈[ 0, 255]
(Nbp : nombre de pixels de l‘image)
i

Etape 3 : Densité de probabilité normalisé
j= 0

Etape 4 : Transformation des niveaux de gris de l'image
f '  x , y=C  f  x , y× 255
21
Egalisation de l'histogramme
L'égalisation d'histogramme peut améliorer une image là où la
correction de dynamique de l'histogramme est inefficace.
22
Egalisation de l'histogramme
Si on prend la même image avec des contrastes
différents, l’égalisation d’histogramme donne le même
résultat pour toutes les images.
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
23
Egalisation (locale) de l'histogramme
Image originale
Egalisation globale
Egalisation locale
L’égalisation locale de l’histogramme est faite en prenant une
fenêtre de 7x7 autour de chaque pixel.
CVIPTools : Enhancement>Histograms>Local Equalization
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
24
Opérations sur les images (ET,OU)
Les opérations logiques fonctionnent aussi sur les images.
ET
=
OU
=
CVIPTools : Utilities>Arith/Logic>{AND,OR}
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
25
Opérations sur les images (ET,OU)
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
26
Addition d’images


Si f et g sont deux images, on peut définir
l’addition R pixel à pixel de ces deux images
par :
R(x,y) = Min( f(x,y)+g(x,y) ; 255 )
L’addition d’images peut permettre


De diminuer le bruit d’une vue dans une série
d’images
D’augmenter la luminance en additionnant une
image avec elle-même
CVIPTools : Utilities>Arith/Logic>Add
Source : Eric Favier. L'analyse et le traitement des images. ENISE.
27
Soustraction d’images


On peut définir la soustraction S
pixel à pixel de deux images f et
g par :
S(x,y) = Max( f(x,y)-g(x,y) ; 0 )
La soustraction d’images peut
permettre


Détection de défauts
Détection de mouvements
CVIPTools : Utilities>Arith/Logic>Substract
Source : Eric Favier. L'analyse et le traitement des images. ENISE.
28
Multiplication d’images


La multiplication S d’une image f par un ratio (facteur) peut se définir par :
S(x,y) = Max( f(x,y)*ratio ; 255)
La multiplication d’images peut permettre d’améliorer le contraste ou la
luminosité
x1,5 =
CVIPTools : Utilities>Arith/Logic>Multiply
Source : Eric Favier. L'analyse et le traitement des images. ENISE.
x1,2 =
29
Opérations sur les images (+,-)
F(x,y)
0.5*F(x,y) + 0.5*G(x,y)
G(x,y)
G(x,y) F(x,y)
Source : www.nte.montaigne.u-bordeaux.fr/SuppCours/5314/Dai/TraitImage01-02.ppt
F(x,y) G(x,y)
30
Interpolation d’images
31
Changement d'échelle (interpolation)
CVIPTools : Analysis>Geometry>Resize image
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
32
Interpolation du plus proche voisin

Interpolation du plus proche voisin par copie des pixels

Copie de chaque colonne et de chaque rang
12
14
12 12 14 14
15
17
12 12 14 14
15 15 17 17
15 15 17 17
33
Interpolation bilinéaire



Zoom !
Interpolation bilinéaire
Fonction bilinéaire de 4 pixels voisins (en 2D)
Principe 1D
i-1
i
i-1 i-1/2
i
i+1
x
y
i+1/2 i+1 i+3/2
yi = xi
yi+1/2 = (xi + xi+1) /2
Problème pour le dernier point
⇒ extrapolation linéaire de :
=2*xN - xN-1
Source : www.dearesin.cicrp.jussieu.fr/dearesin/module7/TSSI/Doc Traitement Images/Poly_image/
34
Interpolation bicubique
Principe 1D
 Même raisonnement que précédemment sauf que
yi+1/2 = (-xi-1 + 9*xi + 9*xi+1 - xi+2) /16

Problèmes pour y1/2, ainsi que pour les 2 derniers points


⇒ 2 extrapolations :
 une parabolique à distance 1
 une linéaire à distance 2
x− 1= 3∗x 0− 3∗x 1 x 2
x N = 3∗x N − 1 − 3∗x N − 2 x N −
x N  1 = 2∗x N −x N − 1
3
Le facteur zoom peut être plus élevé, par exemple 3, ce
qui donne pour une interpolation cubique :
y i 1/ 3 =− 5∗xi− 1 60∗x i  30∗x i 1 − 4∗x i 2 / 81
y i 2/ 3 =− 4∗xi− 1 30∗x i  60∗x i 1 − 5∗x i 2 / 81
35
Exemples d’interpolation
Plus proche
voisin
Bilinéaire
Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.
36
Changement d'échelle
Plus proche
voisin
Bilinéaire
(4 voisins)
Source : Jacques-André Landry, Vision robotique (GPA669), ETS (Canada)
37
Changement d'échelle
Bilinéaire
(4 voisins)
Bicubique
(16 voisins)
Source : Jacques-André Landry, Vision robotique (GPA669), ETS (Canada)
38
Références
(voir aussi la page web du cours)

Eric Favier. Cours sur L'analyse et le traitement des images ; Les principes de la
vision assistée par ordinateur. ENISE (France).



http://www.enise.fr/perso/favier/vision/indexvision.htm
Cours sur les traitements ponctuels :
http://www.enise.fr/perso/favier/vision/traitements_ponctuels.pdf
Caroline Rougier. Cours de Traitement d'images (IFT2730). Université de
Montréal (Canada)


http://www-etud.iro.umontreal.ca/~rougierc/ift2730/
Chap 9 : Histogramme : étirements, égalisation, manipulation, seuillage :
http://www-etud.iro.umontreal.ca/~rougierc/ift2730/cours/Cours9_IFT2730_2008_2.pdf
39
Download