Traitement Numériquede l’Image de l Image P é T it tPré-Traitements
TELECOM Nancy 2ème Année
Vincent Bombardierè(MdC HC 61ème Section)
Centre de Recherche en Automatique de Nancy -UMR CNRS 7039-
Vincent BombardierVendredi 11 septembre 2015
ISET
ntr ch rch n utomat qu Nancy M N S 7 9Département: Ingénierie des Systèmes Eco-Technique
Projet Systèmes Intelligents Ambiants
Pré-traitements : Modèle de vision artificielle
Prétraitements Segmentation InterprétationNumérisationMémorisation
Systèmed’acquisition Décisionq Décision
ProduitProduit – Objet -
Cible
Informations ECLAIRAGE Environnement
Informations Extraites= Objectif
CAPTEUR
Montaged'observation
Vendredi 11 Septembre 2015 Vincent Bombardier t2
j
Pré-traitements : Modèle de vision artificielle
Choisis en fonction d’un objectif précis :A éli ti R t ti Dét ti d tAmélioration, Restauration, Détection de contours,Classification, Compression, …
PrétraitementsImage Numérique Image Numérique Image Numérique Image Numérique
traitée
Vendredi 11 Septembre 2015 Vincent Bombardier t3
Pré-traitements : 3 catégories de traitements
Image traitéeImage origine
TTraitement au niveau du pixel:
g(x0,y0)=T[f(x0,y0)]Look Up Table HistogrammeLook Up Table, Histogramme
Traitement aux environs du pixel: g(x0,y0)=T[f(V)]
V:voisinage de (x0,y0)V voisinage de (x0,y0)Filtrage linéaire, non-linéaire, Morphologie
mathématique
Traitement global: g(x0,y0)=T[f(x,y)] Transformée Cosinus, Fourier,
d l tt
Vendredi 11 Septembre 2015 Vincent Bombardier t4
ondelettes...
Pré-traitements : Profil de ligne
0,0 511 x Ng
255
i1
255
127i2
511y 511 x00
NNg255
127
Vendredi 11 Septembre 2015 Vincent Bombardier t5511 x0
0
Pré-traitements : Contraste – Brillance - Intensité
• Mesure relative des différences dans l’image
IIBC
é
I
))((1
:sdéfinition Autres
21 1
IjiICN M
)),(( 2
0 0IjiI
NMC moy
i j
)(min)(max
),(min),(maxjiIjiIjiIjiIC
Vendredi 11 Septembre 2015 Vincent Bombardier
),(min),(max jiIjiI
Pré-traitements : Histogramme
Histogramme
Un histogramme représente le nombre(ou la proportion) de pixels en fonctiondu niveau de gris
Histogramme Cumulatif Normalisédu niveau de gris
Distribution des valeurs de niveaux degris dans une image
H(x) = Nb de pixels dont le NG =x
HC(x) = Taux de pixels dont
Vendredi 11 Septembre 2015 Vincent Bombardier t7
le NG est inférieur à x
Pré-traitements : Histogramme
Histogrammes normalisés
255,0, iiH
I
255,0,
NbLigNbColiHiH
iiH
n
Vendredi 11 Septembre 2015 Vincent Bombardier t8
255I In
Pré-traitements : Exemples d’histogrammes
Exemple d’histogramme bien répartiExemple d histogramme bien réparti
Une image mal contrastée a un histogramme concentré sur une sous partie des intensités disponiblespartie des intensités disponibles
Des regroupements ou pics dans l’histogrammepeuvent indiquer des structuresou objets dans l’image
Vendredi 11 Septembre 2015 Vincent Bombardier t9
Pré-traitements : Table de Transfert (LUT)
Utilisation d’une Table de Transfert ou LUT (Look Up Table)
/* I i i li i d l LUT à i *//* Initialisation de la LUT à rampe croissante */Pour i=0 à 255
LUT[i] = i;
/* Application de la LUT */Pour i=1 à nblig
Pour j=1 à nbcolI’
Pour j=1 à nbcolI’(i,j) =LUT[I(i,j)]; 255
I : Niveau de Gris d’entrée
I’ : Niveau de Gris de SortieI : Niveau de Gris de Sortie
I’(x,y) = F(I(x,y)) I0
2550
Vendredi 11 Septembre 2015 Vincent Bombardier t10
2550
Pré-traitements : Expansion de dynamique
255%
LUT Identité
255
0 255255 0 255min max
LUT Expansion de Dynamique255
Vendredi 11 Septembre 2015 Vincent Bombardier t11
min max255 0 255
Pré-traitements : Expansion de dynamique
I’
2NG 1 Implémentation
2NG - 1/* Initialisation de la LUT */Pour i=0 à 2NG - 1
LUT[i]= (2NG 1 )*(i minI)/(maxI minI);I’(i,j)
LUT[i]= (2NG - 1 )*(i-minI)/(maxI-minI);
/* Application de la LUT */Pour i=1 à nblig
Imin max0
I(i,j)
Pour i 1 à nbligPour j=1 à nbcol
I’(i,j) =LUT[I(i,j)];
0)('0)12(
min)(minmax
jiIjiI
NG
min))(()12('
0),(min),(
jiIAlors
jiIjiI
NG
Vendredi 11 Septembre 2015 Vincent Bombardier t12
1,0minmaxmin)),(( min)),((
minmax)12(),('
jiIavecjiIiiI
Pré-traitements : Expansion de dynamique
Vendredi 11 Septembre 2015 Vincent Bombardier t13
Pré-traitements : Transformation linéaire avec saturation
255%
255 0 255Smin Smax
255
0 255i255
Vendredi 11 Septembre 2015 Vincent Bombardier t14
0 255min maxSmin Smax
Pré-traitements : Transformation linéaire par morceaux
255%
255 0 255Smin Smax
255
0 255min max255
Vendredi 11 Septembre 2015 Vincent Bombardier t15
0 255Smin Smax
S
Pré-traitements : Transformation non-linéaire
Ex: Correction Ex: Correction gamma (g)
1
émise nkI
0331'
1
nn
11
0.3,3.1
àoeil
écran
32àoeil
Vendredi 11 Septembre 2015 Vincent Bombardier t16
Pré-traitements : Re - Quantification255
r3
O t tifi l l i i l N i L l d t iti Tk t
b = 255t3 t4a = 0
On veut quantifier les valeurs originales en N niveaux. Les valeurs de transition Tk etde reconstruction Rk sont données par :
/)(*)1( NabWavecWkTk
N1kpour*
/)( *)1(
NTkRk
NabWavecWkTk
L’intervalle (b-a)/N = Tk – T(k-1) est constant, et est appelé l’intervalle detifi ti
N..1 k pour 1
N
TkRk
Vendredi 11 Septembre 2015 Vincent Bombardier t17
quantification.
Pré-traitements : Quantification : exemple
Vendredi 11 Septembre 2015 Vincent Bombardier t18
Pré-traitements : Quantification non-uniforme
Vendredi 11 Septembre 2015 Vincent Bombardier t19
Pré-traitements : Autres
255LUT Inverse
255
LUT Rehaussementde contraste
LUT Rehaussementparties claires
LUT HomogénéisationLUT Rehaussementparties sombres
255 255 255 255pp
Vendredi 11 Septembre 2015 Vincent Bombardier t20
255 255 255 255
Pré-traitements : Binarisation - Seuillage
255
LUT Binarisation
255
255S 255S
I’(i,j) = 255 si I(i,j) > seuil I’(i,j) = 0 sinon
255LUT Seuillage
I’(i,j) = 255 si s2 > I(i,j) > s1 I’(i,j) = 0 sinon
Vendredi 11 Septembre 2015 Vincent Bombardier t21255S1 S2
Pré-traitements : Choix de seuil par histogramme
Vendredi 11 Septembre 2015 Vincent Bombardier t22
seuil seuil
Pré-traitements : Choix des seuils optimaux (1 seuil)(minimisation de la probabilité d’erreur)
seuil
Vendredi 11 Septembre 2015 Vincent Bombardier t23
Pré-traitements : Choix des seuils (optimaux)
2 surfaces (arrière-plan et objet) dans une imageSi nous supposons des modèles mathématiques pour Si nous supposons des modèles mathématiques pour
les distributions (gaussiennes etc.)On peut déterminer la probabilité d’erreur de p m p
classification dans les classes 1 et 2 (surfaces 1 et 2)On cherche alors un seuil S qui causera une erreur
i i lminimaleClasse 1
Classe 2
E1 E2
Vendredi 11 Septembre 2015 Vincent Bombardier t24
S1 E2
Pré-traitements : Algorithme de Otsu On balaie toutes les valeurs de seuil
possible S P h s il S : Pour chaque seuil S :
On calcule les moyennes et les variances de chaque classe
O ’i té à l i i t On s’intéresse à la variance intra-classes
S
122
1 10
1 ( )S
iH i
S
:
2 1:2 1:
22
classesIntraVarianceetVariancesetMoyennes
0255
222 2
1 1
1 ( )2561 1
i
i SS S
H iS
i i d icelui est optimal seuil Le
.P .P
222
211
2w
classesIntraVariance
Basé sur le fait que les classest bi défi i t é
1 1
1 10 0
255 255
1 1( ) ( )
1 1( ) ( )
S S
i ih i P H i
S NbLig NbCol
h i P H i
minimum donne qui w
Vendredi 11 Septembre 2015 Vincent Bombardier t25
sont bien définies et regroupées 2 2( ) ( )256 i S i S
h i P H iS NbLig NbCol
Pré-traitements : Égalisation d’histogramme
%%
min max 0 255
Vendredi 11 Septembre 2015 Vincent Bombardier t26
Pré-traitements : Cas continu
Définition : Pour une variable aléatoire continue, et dans le cas courant où est un intervalle [a, b] R, on définit la notion de fonction de où est un intervalle [a, b] R, on définit la notion de fonction de répartition F de X comme :
x
)()()()( xHCdttpxXPxFa
x
En discret on parlera d’histogramme cumulé
p (x) ps(s). pr(x) ps( )
1
d ds 1
Vendredi 11 Septembre 2015 Vincent Bombardier t27
dx 1 r ds 1 s
Pré-traitements : Interprétation intuitive L’égalisation revient à grouper par paquets de L éléments les intensités de
l’image de départ. L’image par HC de deux niveaux de gris successifs est séparée par la même L image par HC de deux niveaux de gris successifs est séparée par la même
distance. L’image par HC de xk (k < N/L) est dans l’intervalle [0, 1/L].
Vendredi 11 Septembre 2015 Vincent Bombardier t28
Pré-traitements : Implémentation cas discret
jiIHCNG ))(()12()('NbColNbLig
jiIHCjiI NG
.)),(().12(),('
Image I,S ;float H[256],phi[256] ;% Calcul de l’histogramme (densité de probabilité)% Calcul de l histogramme (densité de probabilité)H = Histogramme(I) ;% Calcul de HCP k 0 k 256 kPour k=0 ; k<256 ; k++
kjj
NG jHkHC0
][).12(][% Appliquer la transformation S=HC[I]
Pour (i,j) dans l’image
Vendredi 11 Septembre 2015 Vincent Bombardier t29
( ,j) gS[i,j] = (int) HC[I[i,j]]
Pré-traitements : Cas discret
12
14• Histogramme aussi plat que possible• L’ordre des NdG est maintenu
68
10 • L ordre des NdG est maintenu (monotone croissante)
• Les rectangles (barres) ne sont pas f é ( i )
0 1 2 3 4 5 6 7
2
4 fragmentés (monotone croissante)
14
Valeur moyenne idéale: 51 pixels/8 NG=6.375
8101214
10/51*7=1.37 29/51*7=3.98 49/51*7=6.7318/51*7= 2.47 43/51*7=5.90 51/51*7=7.027/51*7=3.7 44/51*7=6.04
246
normaliséhistoHavecjHiHCi
Vendredi 11 Septembre 2015 Vincent Bombardier t30
0 1 2 3 4 5 6 7 normaliséhistoHavecjHiHC n
jn .
0
Pré-traitements : Exemple sur image réelle
Vendredi 11 Septembre 2015 Vincent Bombardier t31
Pré-traitements : Exemple sur image réelle
Vendredi 11 Septembre 2015 Vincent Bombardier t32
Pré-traitements : Spécification d’histogramme(histogram matching)
On ajuste l’histogramme d’une image à celui de l’image de On ajuste l histogramme d une image à celui de l image de référence
Par ex : pouvoir comparer 2 images
Principe : Principe : On utilise l’histogramme d’une image comme référence, et on modifie l’histogramme de l’autre image afin que les on modifie l histogramme de l autre image afin que les images soient similaires
Vendredi 11 Septembre 2015 Vincent Bombardier t33
Pré-traitements : Spécification d’histogramme : Principe
Vendredi 11 Septembre 2015 Vincent Bombardier t34http://lasig.epfl.ch/recherche/rapports/xp1999.pdf<
Pré-traitements : Spécification d’histogramme : Exemple
Vendredi 11 Septembre 2015 Vincent Bombardier t35« Digital Image Processing », Gonzalez, Woods, 2002
Pré-traitements : Spécification d’histogramme : Exemple
Vendredi 11 Septembre 2015 Vincent Bombardier t36« Digital Image Processing », Gonzalez, Woods, 2002
Pré-traitements : Spécification d’histogramme : Exemple
Vendredi 11 Septembre 2015 Vincent Bombardier t37« Digital Image Processing », Gonzalez, Woods, 2002
Pré-traitements : Suppression du bruit[sommation d’images et moyenne]
+2 +8(a) (b) (c)
(d) (e) (f )
+128+32+16
Vendredi 11 Septembre 2015 Vincent Bombardier t38
(d) (e) (f )Recalage adéquat!
Pré-traitements : Opérations logiques : + - * / ET OU XOR NON
* =* =
f(x y)=i(x y)*r(x y) 1/i(x y) f(x,y)f(x,y)=i(x,y)*r(x,y) 1/i(x,y) ( ,y)
Vendredi 11 Septembre 2015 Vincent Bombardier t39
Pré-traitements : Soustraction d’images
| I C t I Réfé | S il| ImageCourante – ImageRéférence | > Seuil
Vendredi 11 Septembre 2015 Vincent Bombardier t40