Prétraitements des images - 1
1ère
PARTIE
PRETRAITEMENTS DES IMAGES
1. INTRODUCTION Dégradations des images Méthodologie de traitement
2. RESTAURATION D’IMAGE Corrections photométriques Corrections géométriques
3. MODIFICATION D’HISTOGRAMME Correction de dynamique Egalisation / ajustement d’histogrammes Transformation adaptative
4. BINARISATION Critères statistique / structurel Exemples
FIN DE PRESENTATION
Prétraitements des images - 2
Traitements spécifiquessans référence au contenude l’image : prétraitements
INTRODUCTION
DEGRADATIONS DES IMAGES
Origines :
Eclairage non homogénéité spatiale, spectre
Prise de vue perturbations du milieu, bougés, vibrations, perspective
Optique défocalisations, aberrations chromatiques, distorsions
Capteur non homogénéité spatiale, non linéarité de réponse, bruits
Electronique bande passante, discrétisation, bruits
Effets :
Défauts de luminance / chrominance :
Défauts géométriques du maillage :
Flou, perte de netteté, de contraste :
Bruits de modèles complexes :
Prétraitements des images - 3
METHODOLOGIE DE TRAITEMENT
INTRODUCTION ( 2 )
Segmentation
Traitement des primitives
Analyse
Image Observation visuelle : critères subjectifs
Extraction de formes ( primitives )
Extraction de paramètres, mesures
Localisation, identification, classification
Dégradations
Prétraitements
Prétraitements des images - 4
TYPES DE PRETRAITEMENTS
INTRODUCTION ( 3 )
Améliorationsubjective
Améliorationobjective
Binarisation
Image
Observation visuelle
Segmentation
Restauration : inversion du processus de dégradation, exige un modèle de dégradation ( corrections photométriques / géométriques ) Améliorations : modifications d’histogrammes méthodes pixel à pixel subjectives ou objectives renforcement du contraste méthodes locales subjectives lissage des bruits méthodes locales subjectives et objectives
Binarisation : transformation en image bi-niveaux pixel à pixel ( segmentation = morphologie )
RestaurationModèle Modèle inconnu : limitation des défauts
Prétraitements des images - 5
CORRECTIONS PHOTOMETRIQUES : EXEMPLES
RESTAURATION D’IMAGE
Correction de capteur ( gain, non linéarité, etc. ) étalonnage expérimental
Energie
Noniveaude gris
N = f ( E )
Courbe d’étalonnage
LUT
No ( pixels bruts ) Nc = LUT (No): pixels corrigés
E = k.f –1 ( No )
Correction de signal : correction gamma modèle explicite
S vidéo = E Nc = ( ( No / 255 ) 1/ ).255 LUT
normalisation No dans [ 0…1 ] puis Nc dans [ 0…255 ]
NB : = 0.45 pour la vidéo noir et blanc
Prétraitements des images - 6
RESTAURATION D’IMAGE ( 2 )
Correction d’uniformité d’éclairement image de référence
Image d’origine : I1 objet sur fond clair
Image de référence : Io (fond) Image I1 – Io + max(Io)
Correction d’éclairement : scène et source fixes, variation de l’éclairement modèle physique
En tout point Lo(x,y) = (x,y).Eo(x,y) si E = Eo + E L = .E = .Eo + .E.Eo/Eo L = Lo + E/Eo.Lo = (1+k).Lo ( multiplication par cste )
Pour progiciels standards, changement d’éclairement : L = Lo + cste faux !
Prétraitements des images - 7
RESTAURATION D’IMAGE ( 3 )
Image d’origine : I1 Correction additive : Id Correction multiplicative : Im
Fond clair théoriquement constant : image de référence fond sans objet Io avec un éclairementconstant devrait être max(Io)
Correction additive : Id = I1 – Io + max(Io) Correction multiplicative : max(Io) = K . Io Im = I1.K = I1.max(Io) / Io
La correction additive fournit le contraste objet / fond mais avec un éclairement non homogènede l’objet, la correction multiplicative prend en compte le modèle physique réel de correctiond’éclairement.
Prétraitements des images - 8
RESTAURATION D’IMAGE ( 4 )
0 50 100 150 200 250 30040
60
80
100
120
140
160
180
200
220
0 50 100 150 200 250 30060
80
100
120
140
160
180
200
220
Image d’origineet profil colonne
Image corrigéeet profil colonne
Algorithme
Pour chaque ligne de l’image Im calcul du minimum de la ligne : Min ligne de l’image du fond = Min
Image corrigée = Im – Fond + moyenne du fond ( conserve niveau moyen du fond )
Code Matlab :
Min=( min(Im‘ ) )‘ ;Fond=repmat( Min,1,size(Im,2) ) ; Icor =Im - Fond+mean(Min) ;
Correction d’uniformité d’éclairement construction de la référence
Prétraitements des images - 9
CORRECTIONS GEOMETRIQUES : TRANSFORMATIONS PLANES
RESTAURATION D’IMAGE ( 5 )
L
C
Les différentes transformations géométriques planes en coordonnées homogènes :
L
C Changement d’échelle ( zoom ) 1
' 0 01
' . avec 0 0 1
1 1 0 0 1
l l klkl kl
c T c T kc Tkc kc
- ®= = Þ
®
Rotation centrée en 0
1cos( ) sin( ) 0
sin( ) cos( ) 0
0 0 1
T T
q q
q q q q--
= Þ ® -
Translation
11 0
0 1
0 0 1
tltl tl
T tc Ttc tc
- ®-= Þ
®-
C
L
Combinaison des transformationsdirectes ou inverses globalement : forme affine
6 paramètres réels
11 12 13
21 22 230 0 1
t t t
T t t t=
Prétraitements des images - 10
CHANGEMENT D’ECHELLE
RESTAURATION D’IMAGE ( 6 )
Exemple de zoom : détail d’une image binaire avec kl = kc = K = 1.7
Transformation directe :
PI( L,C ) PZ( round(K.L),round(K.C) )
certains pixels ne sont pas affectés
Transformation inverse :
PZ( L,C ) PI( round(L/K),round(C/K) ) plus proche voisin dans { PI }
Image initiale { PI }
Zoom { PZ }
Prétraitements des images - 11
RESTAURATION D’IMAGE ( 7 )
Transformation directe : PI( L,C ) PZ( round(K.L),round(K.C) ) Transformation inverse : PZ( L,C ) PI( round(L/K),round(C/K) )
Calculs en réels puis arrondi pour donner des coordonnées entières la transformation directe ne permet pas de calculer tous les points, ce qui laisse des pixels à unevaleur arbitraire ( ici 0, pixels noirs ).
La transformation inverse, par principe, affecte tous les points utilisation systématique de T -1.
Mise en évidence rotation d’une image ( ici constante ) autour de son centre :
Pixels noirsnon affectés
Transformations directe et inverse
La marge noire résulted’une absence de pixels
correspondants dansl’image initiale
Prétraitements des images - 12
ZOOM AVEC INTERPOLATION
RESTAURATION D’IMAGE ( 8 )
T.inverse avec interpolation bi-linéaire :
PZ( L,C ) interpolé ( PI( L/K, C/K ) ) =
Pl( L+dl,C+dc ) en fonction des 4 voisins
T.inverse avec interpolation bi-cubique :
Pl( L+dl,C+dc ) en fonction de 16 voisins
Voir détails des calculs
P(L,C) P(L,C+1)
P(L+1,C) P(L+1,C+1)
0 dl < 1, 0 dc < 1
P(L+dl,C+dc) = [ P(L,C).(1-dc)+P(L,C+1).dc ] . (1-dl) ligne L + [ P(L+1,C).(1-dc)+P(L+1,C+1).dc ] . dl ligne L+1
Interpolation linéaire sur : ligne L ligne L+1 colonne entre les 2 valeurs ci-dessus
Prétraitements des images - 13
0 10 20 30 40 50 6080
100
120
140
160
180
200
220
240
RESTAURATION D’IMAGE ( 9 )
L’interpolation bi-cubique produit une sensation de meilleur contraste différence de niveau
Lignes centrale des images sur quelques colonnes :
sans interpolation niveaux conservés bi-linéaire niveaux intermédiaires, léger flou bi-cubique dépassement des niveaux ( prévoir butées )
Interpolation bi-linéaire Interpolation bi-cubique
Prétraitements des images - 14
REDUCTION CONSERVATIVE D’IMAGE
RESTAURATION D’IMAGE ( 10 )
Réduction d’image : facteur d’échelle K < 1
des pixels sont supprimés, l’information pertinente peut être éliminée dans le cas d’imagesde documents comportant textes ou graphismes blanc / noir ou noir / blanc
Réduction K = 0.7
A la place de l’interpolation entre les 4 voisins :
maximum des 4 voisins ( conservation du blanc) minimum des 4 voisins ( conservation du noir )
Prétraitements des images - 15
GENERALISATION : TRANSFORMATION AFFINE
RESTAURATION D’IMAGE ( 11 )
Combinaison de transformations géométriques forme affine, 6 paramètres
11 12 131 1
21 22 23
'
. ' avec
1 1 0 0 1
l l t t t
c T c T t t t- -= =Homologues de 3 points fixées :
3 x 2 équations, résolution du système t ij
( si plus de points : système sur-déterminé )
1 1 1 111 21
2 2 2 212 22
3 3 3 313 23
' ' 1
' ' 11 - résolution de . 0
' ' 1
l c l ct t
l c l ct t
l c l ct t
- =
M M M M M Système linéaire, solution si au moins :
3 points connus dans image initiale,
3 homologues fixés dans image transformée.
PiTPt
2 - calcul des dimensions image transformée
3 - pour tous points image transformée : Pt( L’, C’ )
calcul de interpolé de ( Pi( L, C ) )
Pt * T – Pi = 0
Prétraitements des images - 16
RESTAURATION D’IMAGE ( 12 )
Exemple, recadrage d’un texte choix des points de référence
Code Matlab :
Pi=[ [22 21] ; [113 28] ; [109 87] ] ;
Pt=[ [20 20 1] ; [120 20 1] ; [120 90 1] ] ;
T=Pt \ P i;
P1
P2
P3
Choix d’extrémités de caractères,
a priori pour image correcte :
P1 et P2 sur même colonne P2 et P3 sur même ligne
d‘où Pi et Pt
Prétraitements des images - 17
RESTAURATION D’IMAGE ( 13 )
Puis application de la transformation avec interpolation bi-linéaire
Redressement du texte ( rotation + translation ) et zoom
Prétraitements des images - 18
RESTAURATION D’IMAGE ( 14 )
2 prises de vues avec mouvement du capteur
CAS D’UNE TRANSFORMATION PROJECTIVE ( NON PLANE )
X=|x y z|t
O O1
U=|u v 1|t
T3D
TP3x3
TP3x3 U = k.TP.X X = TP-1.1/k.U k scalaireU1 = k1.TP.(R.X+T) = k1.TP.(R.TP-1.1/k.U+T) k1 scalaire
U1 = fonction ( U ) ?
U1
T-PlanPlan.mws
Le développement des calculs montre que les scalaires disparaissent de U1 = f(U) si le terme de
translation de T3D est faible par rapport à la distance OX (z), ainsi pour |tx ty tz|=0, on obtient alorsune relation homographique.
Voir notations dans « Formation des images »
1 111. 12. 13 21. 22. 23
31. 32. 33 31. 32. 33
h u h v h h u h v hu v
h u h v h h u h v h
+ + + += =
+ + + +
Sous forme matricielle, si des points communs aux 2 vues sont connus, coordonnées U et U1 :
1
1 1 1
11 12 13
. 21 22 23 . U H.U H est donc solution du système linéaire U .H U
1 31 32 33 1
t t tu h h h u
v k h h h v
h h h
= ® = ® =
9 inconnues, 2 relations par point commun 5 points communs
Prétraitements des images - 19
RESTAURATION D’IMAGE ( 15 )
Application, recalage de 2 prises de vues avec rotation 3D du capteur ( mosaïque d’images )
1 1 1
5 5 1
tl c
U
l c
= M M M 1
'1 '1 1
'5 '5 1
tl c
U
l c
= M M M
5 pixels o 5 pixels o
En pratique, lespoints devraient êtremieux répartis dansles 2 images, pourune meilleureestimation de H.
Prétraitements des images - 20
On peut donc reformuler le système précédent pour déterminer T -1 :
Pt * T - Pi = 0
2 x 10 paramètres réels le calcul nécessite au moins 10 couples de points Pi(l,c), Pt(l’,c’)
CORRECTION DES DISTORSIONS
RESTAURATION D’IMAGE ( 16 )
On a modélisé [ voir Modèle de caméra – distorsions ] les défauts géométriques :
Erreurs de positionnement de la caméra, termes petits, donc au premier ordre ; Distorsions géométriques de l’optique ; Déplacement du plan de prise de vue ( rotation axe z, translations selon x et y ) ;
termes d’erreur sur les coordonnées = polynômes de degré 3 :
Valeurs idéales ui,vi valeurs réelles ur,vr : ur = ui + err( ui,vi ) l = l’ + Pl 3( l’,c’ )
vr = vi + err( ui,vi ) c = c’ + Pc 3( l’,c’ )
1,1 2,13 2 2 3 2 2
1,10 2,10
' '. ' ' . ' ' ' '. ' ' ' ' 1. 0
t t
l l c l c c l l c c l c l c
t t
- =M M
Mod_Cam_2 . mws
Prétraitements des images - 21
RESTAURATION D’IMAGE ( 17 )
Exemple de correction sur une mire, avec interpolation bi-linéaire
Les points de référence sont les centres de gravité ( CdG ) des 9 x 15 carrés
Les carrés sont uniformément répartis coordonnées idéales selon un motif rectangulaire
En pratique, préférabler des disques : meilleure stabilité de position du CdG
Distorsions en barillet Motif rectangulaire restauré
Prétraitements des images - 22
RESTAURATION D’IMAGE ( 18 )
50 100 150 200 250 300 350 400 450 500
50
100
150
200
250
300
350
400
450
500
Références groupées au centre ( 17 CdG rouges ) la périphérie est mal corrigée
correction par mire interieure (marques rouges)
50 100 150 200 250 300 350 400 450 500
50
100
150
200
250
300
350
400
450
500
50 100 150 200 250 300 350 400 450 500
50
100
150
200
250
300
350
400
450
500
Avec déplacement dans le plan
correction par mire interieure (marques rouges)
50 100 150 200 250 300 350 400 450 500
50
100
150
200
250
300
350
400
450
500
Prétraitements des images - 23
50 100 150 200 250 300 350 400 450 500
50
100
150
200
250
300
350
400
450
500
50 100 150 200 250 300 350 400 450 500
50
100
150
200
250
300
350
400
450
500
La correction n’est effective qu’à l’intérieur du motif de référence
RESTAURATION D’IMAGE ( 19 )
50 100 150 200 250 300 350 400 450 500
50
100
150
200
250
300
350
400
450
500
Références situées en périphérie ( 16 CdG bleus ) l’image est globalement bien corrigée
Avec déplacement dans le plan
50 100 150 200 250 300 350 400 450 500
50
100
150
200
250
300
350
400
450
500
Prétraitements des images - 24
CORRECTIONS DE DYNAMIQUE
MODIFICATION D’HISTOGRAMME
Éviter les saturations ( non linéarités irrécupérables ) :réduction du temps d’intégrationréduction de l’ouverture d’objectif
Modification de l’éclairement de la scène
Dynamique de l’imagenon optimale
0 50 100 150 200 250
0
200
400
600
800
1000
1200
1400
1600
1800
0 50 100 150 200 250
0
200
400
600
800
1000
1200
1400
1600
1800
Ajustement linéaire de la dynamique :
Gt = 255.( Go – Gmin) / (Gmax – Gmin)
Go
Gt255
255
LUT
Code Matlab :
LUT=[0:255] ;LUT=255*(LUT-Gmin) / (Gmax-Gmin) ;LUT=min( max( LUT,0 ),255 );Icor = LUT( Im+1 );
Prétraitements des images - 25
MODIFICATION D’HISTOGRAMME ( 2 )
Correction non linéaire de dynamique : compensation de sur- ou sous-exposition :
Existence de zones claires ou sombres dans l’image et besoin d’amélioration de la visibilité des détails dans ces zones : transformation augmentant la plage de variation des niveaux de gris de ces zones cette transformation s’effectue au détriment des plages complémentaires
0 50 100 150 200 250 3000
50
100
150
200
250
300
Programmation de la LUT de correction :
Code Matlab :
Si N < 1 amélioration zones sombres ( sous-exposées )
Si N > 1 amélioration des zones claires ( sur-exposées )
LUT=[0:255] ;LUT=255*(LUT / 255) .^ N ;
Gt = LUT ( Go )NB : correction gamma …
Prétraitements des images - 26
EGALISATION D’HISTOGRAMME
MODIFICATION D’HISTOGRAMME ( 3 )
Idée : transformer un histogramme quelconque en histogramme uniforme
Équivalence des notions pour les domaines continu et discret :
densité de probabilité f(x) histogramme normalisé H(n)/Ne ( Ne = nbre échantillons ) fonction de répartition F(x) histogramme normalisé cumulé HC(n)
Transformation y = T(x) pour l’égalisation d’histogramme :
répartition initiale donnée : f(x) donc F(x) connues répartition cible de y sur [0…255] avec f(y) uniforme f(y) = 1/255 T(x) respectant les relations d’ordre sur x ( monotone, croissante)
propriété des probabilités : f(y) = f(T –1 (y) ) / ( dT(x) / dx ) dT(x)/dx = 255.f(x)
T(x) = 255.F(x) soit dans le domaine discret : T(Go) = 255/NbrePixels . HC (Go)
Propriétes :
utilise toute la dynamique ajustement implicite de dynamique regroupe les classes de niveaux de gris proches élimine les niveaux intermédiaires amélioration visuelle du contraste problème : transformation exacte dans le domaine continu, mais approchée en discret ( voir exemple, prochaine diapositive )
Prétraitements des images - 27
MODIFICATION D’HISTOGRAMME ( 4 )
Ajustement de dynamique et égalisation d’histogramme :
0 50 100 150 200 250
0
50
100
150
200
250
300
0 50 100 150 200 250
0
50
100
150
200
250
300
Ajustement de dynamique
Égalisation d’histogramme
0 50 100 150 200 250
0
50
100
150
200
250
300
Code Matlab :
Hi=imhist( uint8(Im) );[Nl,Nc]=size(Im) ;for G=255:-1:2, HCi(G)=sum( Hi(1:G) ); endLUT=255*Hci / (Nl*Nc) ;Ieh=uint8( LUT(Im+1) );
NB : histogramme non uniforme
Gt = LUT ( Go )
0 50 100 150 200 250 3000
50
100
150
200
250
300
Prétraitements des images - 28
TRANSFORMATION ADAPTATIVE
MODIFICATION D’HISTOGRAMME ( 5 )
Toutes les transformations précédentes sont globales ( sur l’ensemble de l’image )
Si la luminance n’est pas uniforme adaptation de transformation au contexte local Exemple : subdivision en 4 zones, calcul de la transformation pour chaque zone Zi
Code Matlab :
Lo=round(Nl/4); TL=round(Nl/2); Co=round(Nc/4); TC=round(Nc/2);for L=1:Nl, Kv=max( min( (L-Lo)/TL,1 ),0 ) ; for C=1:Nc, G=Im(L,C) ; Kh=max( min( (C-Co)/TC,1 ),0 ) ; Gt01=LUT0(G)*(1-Kh)+LUT1(G)*Kh; Gt23=LUT2(G)*(1-Kh)+LUT3(G)*Kh; Iad(L,C)=Gt01*(1-Kv)+Gt23*Kv; endend
Z2 Z3
Z1Z0
0 C
L
NB :
Kh et Kv [0…1]
respectivement pondérations horizontale et verticale
Zi : dimensions Nl/2 x Nc/2 centre (Li,Ci) et transformation locale Ti
Pour pixel P(l,c) interpolation bilinéaire des transformations : pondération des Ti par les distances P (Li,Ci)
Prétraitements des images - 29
TRANSFORMATION ADAPTATIVE
MODIFICATION D’HISTOGRAMME ( 5 )
Image initiale Ajustement globalde dynamique
Ajustement adaptatif4 zones
Noter que les relations d’ordre sur les niveaux de gris ne sont plus respectées
Prétraitements des images - 30
AJUSTEMENT DE 2 HISTOGRAMMES
MODIFICATION D’HISTOGRAMME ( 6 )
Eclairages différents d’une même scène histogrammes différents
Modification d’un histogramme pour l’ajuster à l’autre images comparables
Algorithme :
Calculer les histogrammes cumulés de référence HCref et cible HCcible ( à modifier )
Pour G dans [0…255] calculer Go tel que : | HCref (Go) – HCcible (G) | = 0 par interpolation linéaire LUT (G) = Go
Code Matlab : for G=256:-1:2, Href(G)=sum( Href(1:G) ); Hcible(G)=sum( Hcible(1:G) );endHref=[-1.0e+38;Href;1.0e+38] ; % butees pour calculfor G=1:256, Tst=Href-Hcible(G); Neg=find(Tst < 0); Gn=Neg(end); % dernier < 0 Pos=find(Tst > 0); Gp=Pos(1); % premier > 0 Lut(G)=( Tst(Gp)*Gn-Tst(Gn)*Gp ) / ( Tst(Gp)-Tst(Gn) ) ;endLut=round( Lut )-2;
Prétraitements des images - 31
MODIFICATION D’HISTOGRAMME ( 7 )
0 50 100 150 200 250 3000
2000
4000
6000
8000
10000
12000
14000
0 50 100 150 200 250 3000
2000
4000
6000
8000
10000
12000
14000
0 50 100 150 200 250 3000
2000
4000
6000
8000
10000
12000
14000
0 50 100 150 200 250 3000
2000
4000
6000
8000
10000
12000
Ajustement des3 histogrammes
R V B
sur la référence
Référence
Lumière blanche
3 images couleur avec des lumières présentant une composante spectrale
Prétraitements des images - 32
PRINCIPE
BINARISATION
Transformation pixel à pixel ( par LUT ) transformant une image multi-niveaux en une image 2 classes, notées C0 et C1 : image binaire
Cas particulier de modification d’histogramme : 2 modes 2 classes
Gt
GoSeuil0
1Problème : choix du seuil ?
Base de choix histogramme
Cas idéal : histogramme bimodalle seuil est tel que H(S) = 0 entre les deux modes
Go
H(Go)
Détermination du seuil :
empiriquementcritère statistique : critère bayesien ou minimisation de la variance intra-classe critère structurel : critère de forme
seuil global ou adaptatif selon critère local optimal
Prétraitements des images - 33
Recherche du seuil optimal So tel que :
où Pei = probabilité d’erreur de classification pour la classe i , et PCi probabilité de la classe Ci
sous hypothèse de distributions gaussiennes de même variance 2 :
CRITERE BAYESIEN
BINARISATION ( 2 )
( )0 0 1 1. .0
d Pe PC Pe PCdPerreur
dS dS
+= =
( ) ( )
( )
( )
2 20 0
0 2 2
21
1 2 2
20
0 12
. exp . 1 . exp .2 2
1. exp . où 2 2
. .exp . .exp2
So
So
So
S SPe K dS K dS
SPe K dS K
SodPerreurK PC K PC
dS
m m
s s
m
s ps
m
s
¥
- ¥
- ¥
æ ö æ ö÷ ÷ç ç- - - -÷ ÷ç ç÷ ÷= = -ç ç÷ ÷ç ç÷ ÷ç ç÷ ÷÷ ÷ç çè ø è ø
æ ö÷ç- - ÷ç ÷= =ç ÷ç ÷ç ÷÷çè ø
æ ö÷ç- - -÷ç ÷=- +ç ÷ç ÷ç ÷÷çè ø
ò ò
ò
( )
( )( )
( )( )
( )
21
2
2 20 1
0 12 2
21 0 0
11 0
02
ln ln2 2
.ln2
So
So SoPC PC
PCSo PC
m
s
m m
s s
m m sm m
æ ö÷ç - ÷ç ÷=ç ÷ç ÷ç ÷÷çè ø
æ ö æ ö÷ ÷ç ç- - - -÷ ÷ç ç÷ ÷Þ + = +ç ç÷ ÷ç ç÷ ÷ç ç÷ ÷÷ ÷ç çè ø è ø
+ æ ö÷çÞ = + ÷ç ÷è ø-
Suppose connus PC 0 et PC 1
0 et 1 obtenus itérativement
Prob
Gris
C0 C1
Pe0.PC0
Pe1.PC1
So
Prétraitements des images - 34
VARIANCE INTRA-CLASSE MINIMALE
BINARISATION ( 3 )
( ) ( )
( )
( )
( ) ( )
0 1
0 1
220 1
i i 0 1
2 2 2
2 2 20. 10 1
2 20. 10 1
1variance intra-classes
1où et effectif de et
.
1 1 .
min max .
i
i i
C C
ii C
i i iC C
C C
Vic g gN
g N C N N NN
g g N
Vic g N NN N
Vic N N
m m
m
m m
m m
m m
æ ö÷ç ÷= - + -ç ÷ç ÷ç ÷çè ø
= = = +
- = -
Þ = - +
Þ Û +
å å
å
å å
åU
VIC=zeros( size(Seuil) ) ;for I=1:length(Seuil) , S=Seuil(I) ; N0=sum(Hi(1:S)) ; SG0=sum( Hi(1:S).*[0:S-1]‘ ) ; N1=sum(Hi(S+2:end)) ; SG1=sum( Hi(S+2:end).*[S+1:255]‘ ) ; VIC(I)=SG0^2/N0+SG1^2/N1 ; end[Vmax,Imax]=max( VIC ) ; VIC=VIC/Vmax ;
Détermination de So séparant C 0 et C 1 :
Pour seuil S dans la plage de test : calcul du critère selon histogramme Hi
Minimum du critère seuil optimal So
Code Matlab :
Prétraitements des images - 35
BINARISATION ( 4 )
0 50 100 150 200 250
0
500
1000
1500
2000
2500
3000
170 180 190 200 210 220 2300.994
0.995
0.996
0.997
0.998
0.999
1
1.001
Histogramme
N0.0 2 + N1.1 2
max pour 220
Exemple : images binarisées pour Seuil = 170, 220, 230
Prétraitements des images - 36
Compacité C = 4. Surface / Périmètre 2
CRITERE DE FORME : COMPACITE
BINARISATION ( 5 )
Critère basé sur la régularité des formes des objets et la stabilité de leurs contours ce critère s’applique sur l’image binaire, donc après seuillage
Discrimination des formes : disque C = 1, carré C = 4 / 16, rectangle 1 x 0.1 C 4 / 50 Indice de fractionnement : 1 forme C = cf N formes identiques même surface totale C = cf / N Indice de points isolés : 1 point isolé à 0 dans une forme P = P+4, S = S-1 C 1 point isolé à 1 dans le fond P = P+4, S = S+1 C ( moins ) Méthode :
Pour toutes les valeurs du seuil dans la plage à tester :binarisationsurface = nbre de pixels à 1, périmètre = nbre de points des contourscalcul de la compacité à 4 près
Compacité maximale Seuil optimal
Prétraitements des images - 37
COMPACITE : MODE DE CALCUL
BINARISATION ( 6 )
NB : la compacité n’a d’intérêt que si la forme est régulière et modifiée par le choix du seuil !
• Calcul de la surface immédiat, S = nbre de pixels à l’état 1
• Calcul du périmètre, P = nbre de pixels du contour, plusieurs choix possibles :
- 2 contours discrets à combiner : intérieur Pint et extérieur Pext d’où
- et de plus 2 définitions de connexité : 4-connexité ou 8-connexité
• Les valeurs extrêmes des seuils n’ont aucune signification :
- seuil très faible, image à 1 sauf quelques pixels isolés à 0- seuil élevé, image à 0 sauf quelques pixels isolés à 1
il n’y a plus de notion d’objet et de fond, un critère de forme n’a plus de sens
C1 = 4.. S / (Pint*Pext) C2 = 16.. S / (Pint+Pext) 2
Prétraitements des images - 38
COMPACITE : DISCRETISATION
BINARISATION ( 7 )
Calcul de la surface sans ambiguité, S = nbre de pixels à l’état 1
Calcul du périmètre, P = nbre de pixels du contour, dépend de la connexité utilisée 4-C ou 8-C :
P = ( Pint + Pext ) / 2
Exemple, 1 point isolé :
S = 1, Pint =1
Pext 4-C = 4 Pext 8-C = 84-C 8-C
Compacité 8-C = 16. / ( 9 2 ) = 0.62
Compacité 4-C = 16. / ( 5 2 ) = 2 compacité > 1, conséquence de la discrétisation
la valeur limite de 1 pour la compacité (disque) n’est valable que pour un espace continu
Prétraitements des images - 39
0 50 100 150 200 250
0
100
200
300
400
500
600
700
800
70 75 80 85 90 950.026
0.027
0.028
0.029
0.03
0.031
0.032
0.033
0.034
0.035
Exemple : images binarisées pour Seuil = 70, 82, 95
BINARISATION ( 8 )
Histogramme
Compacitémax 0.034 pour 82
Prétraitements des images - 40
BINARISATION ( 9 )
CODAGE DIT « HALF TONING »
Objectif : rendu visuel d’une image en niveaux de gris sous forme binaire
principe en 1D, signal G(i) de dynamique [0,Gm] et seuil S = Gm/2, algorithme :
si G(i) ≥ S Err = G(i)-Gm; B(i) = 1; Err est l’erreur due au codage G(i) ~Gm
sinon Err = G(i); B(i) = 0;
G(i+1) = G(i+1) + Err; l’erreur est reportée sur le point suivant
résultat : si G = S B = 010101… alternance noir / blanc
si G > S la densité de points blancs augmente avec G
si G < S inversement la densité de points noirs augmente
En 2D, diffusion de l’erreur, répartie pondérée vers les points voisins ( Floyd-Steinberg )
- balayage de l’image, en chaque pixel P(i,j) : test / binarisation / calcul de l’erreur
- diffusion de l’erreur sur les suivants :
P(i,j) → Err P(i,j+1)
+ 7/16.Err
P(i+1,j-1)+ 3/16.Err
P(i+1,j)
+ 5/16.Err
P(i+1,j+1)
+ 1/16.Err
Prétraitements des images - 41
BINARISATION ( 10 )
Exemple répartition pseudo-aléatoire de points noirs / blancs :
Binarisation Img > 127
Half-toning
la densité des points donne un rendu multi-niveaux de gris
Prétraitements des images - 42
RETOUR AU PLAN
FIN DE PRESENTATION
FIN DE PRESENTATION
Prétraitements des images - 43
INTERPOLATION BI-CUBIQUE
Interpolation cubique interpolation 1D par polynôme de degré 3 sur 4 points connus
P(L,C-1), P(L,C), P(L,C+1), P(L,C+2)
( )
( )
( )
( )
3 2 3 2
3 2
( 1) 1 1 1 1 ( )
(0) 0 0 0 1 ( )( ) . . . . ( ) 1.
(1) 1 1 1 1 ( )
(2) 8 4 2 1 ( )
1 3 3 1 ( 1)
3 6 3 0 (0)( ) 1. . 1. ( 1) 0. (0) 1. (1) 2. (2)
2 3 6 1 (1)
0 6 0 0 (2)
P i
P i
P i
P i
P a a
P b bP x a x b x c x d P x x x x
P c c
P d d
P
PP x x x x Cm P C P C P C P
P
P
- - -
= + + + ® = ® =
- - -
-= = - + + +
- - -
avec x = dc, 0 < dc < 1donné
Icubic . mws
Sur la ligne L, et avec une référence arbitraire C = 0, calcul de P(dc) :
Ck fonctions de x et des coefficients
Prétraitements des images - 44
INTERPOLATION BI-CUBIQUE ( 2 )
Interpolation bi-cubique autre méthode d’interpolation 1D par polynôme de degré 3 avec 2 points : P(L,C), P(L,C+1) et 2 dérivées : P’ (L,C), P’ (L,C+1)
( , ) 1. ( , 1) 0. ( , ) 1. ( , 1) 2. ( , 2)
avec 1/ 6 :
1 . .( 1).( 2)
0 3. .( 1).( 2).( 1)
1 3. . .( 1).( 2)
2 . .( 1).( 1)
P L C dc Cm P L C C P L C C P L C C P L C
K
Cm K dc dc dc
C K dc dc dc
C K dc dc dc
C K dc dc dc
+ = - + + + + +
=
=- - -
= - - +
=- + -
= - +
Soit en 2D une zone de 4 lignes x 4 colonnes par point
- 4 interpolations 1D horizontales sur 4 lignes - 1 interpolation 1D verticale sur les 4 résultats
3 2
3 2
(0) 0 0 0 1
(1) 1 1 1 1( ) . . . . mais il faut calculer '(0) et '(1)
'(0) 0 0 1 0
'(1) 3 2 1 0
2 2 1 1 (0)
3 3 2 1 (1) 1 1( ) 1. . '(0) ( (1) ( 1)), '(1) ( (2) (0))
0 0 1 0 '(0) 2 2
1 0 0 0 '(1)
P a
P bP x a x b x c x d P P
P c
P d
P
PP x x x x P P P P P P
P
P
= + + + ® =
-
- - -= = - - = -
d’où encore 4 points concernés
par exemple
Icubic . mws
Prétraitements des images - 45
STABILITE DU CdG D’UN DISQUE
La position du centre de gravité d’une forme n’est pas un invariant projectif
La déformation projective d’un disque est plus faible que celle d’un motif rectangulaire ( carré )exemple d’une transformation projective disque et carré englobant pour ax = 0, ay = 45° :
- j : position théorique du CdG- r : CdG du carré transformé en trapèze- b : CdG du disque transformé en ellipse
ax
ay
Ø=0.5
F=0.01
Zo=1
Courbes ErrX ellipse fonction de ay -60…60°
T3DC.mwsT3Do5d0.mws
ax = 0° : b 15 : v 30 : j 45 : r
Maxi pouray=45 ax=0
Prétraitements des images - 46
STABILITE DU CdG D’UN DISQUE ( 2 )
TP_disc_o2 . mws
Erreur de position du centre de gravité d’un disque
Pour un disque de rayon R, situé en (Xo,Yo,Zo) et dans un plan non parallèle au capteur,angles d’Euler ax,ay,az le calcul au second ordre ( angles petits, validité qui s’étend jusqu’à ~ 10° ) fournit une estimation du déplacement du CdG par rapport à sa position théorique :
Exemple, en conditions défavorables :
R = 2 cm, F = 6 mm, pix = 5 μm, Zo = 1mXo = -Yo = 0.5 m et ax = ay = 10° ErrX = 0.1 pix et ErrY = -0.1 pix
2 22 2
22 2
22
.(2. ) . .. . . .
11 . . .( ). 3. 1
2
.(2.. .
Xo Yoay ay ax ax ay
R RZo ZoErrX f f ay
Zo ZoXo Yo Ray ax ax ay
Zo Zo Zo
Yoax ax
R ZoErrY f
Zo
æ ö÷ç + + - ÷ç ÷çæ ö æ öè ø÷ ÷ç ç= ÷ ÷ç ç÷ ÷ç çæ öæ öè ø è ø÷æ öç ÷ç ÷÷ç ÷ç ç ÷+ - + + - ÷÷ç ç ç ÷÷÷çç ç è ø ÷÷÷çç ÷ç è øè ø
- + +æ ö÷ç= ÷ç ÷çè ø
;
22
22 2
) . .. .
11 . . .( ). 3. 1
2
Xoay ax ay
RZof ax
ZoXo Yo Ray ax ax ay
Zo Zo Zo
æ ö÷ç - ÷ç ÷ç æ öè ø ÷ç- ÷ç ÷çæ öæ ö è ø÷æ öç ÷ç ÷÷ç ÷ç ç ÷+ - + + - ÷÷ç ç ç ÷÷÷çç ç è ø ÷÷÷çç ÷ç è øè ø
;