0% ont trouvé ce document utile (0 vote)
194 vues73 pages

Traitement d'Images : Histogrammes et Transformations

Ce chapitre traite des transformations d'histogrammes pour améliorer le contraste des images, notamment l'étirement d'histogramme, l'égalisation d'histogramme et les tables de conversion.

Transféré par

heithem.benmoussa.71
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
194 vues73 pages

Traitement d'Images : Histogrammes et Transformations

Ce chapitre traite des transformations d'histogrammes pour améliorer le contraste des images, notamment l'étirement d'histogramme, l'égalisation d'histogramme et les tables de conversion.

Transféré par

heithem.benmoussa.71
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

CHAPITRE 2:

TRAITEMENT D’IMAGES

TRANSFORMATION D’HISTOGRAMME

ISTIC GLSI2
PLAN

 Etirement de l’histogramme

 Égalisation d’histogramme

 Autres transformations d’histogramme


 Transformation linéaire
 Transformation linéaire avec saturation
 Transformation linéaire par morceau
 Transformation non-linéaire

2/73
TABLE DE CONVERSION

 L’implémentation des méthodes de transformation


d’histogramme peut être optimisé en utilisant une
table de conversion appélée aussi «LUT» (Look Up
Table),
 Une table de conversion est une table qui à tout niveau (de 0 à
Nmax) fait correspondre un autre niveau (dans la plage 0-
Nmax).

j = Transformation(i)

3/73
ETIREMENT DE L’HISTOGRAMME

4/73
ETIREMENT DE L’HISTOGRAMME
 Appelé aussi
 Expansion de la dynamique
 Recadrage de la dynamique
 Etalement de l’histogramme
 C’est une transformation linéaire par morceaux sur
l’intervalle [0, L-1] (L=256 pour une image 8bits)
 Principe

 répartir les fréquences d’apparition des pixels sur


toute la largeur de l’histogramme
 Objectif

 Amélioration du contraste de l’image


5/73
ETIREMENT DE L’HISTOGRAMME
 Pour des images trop claires ou trop
foncées, ou encore pour des images dont
les pixels ont des niveaux distribués sur
une plage étroite
 Il s'agit de redistribuer les niveaux sur
l'ensemble de la plage 0-gmax (gmax=255
pour une image 8 bits)

Histogramme Histogramme étiré

6/73
ALGORITHME DE L’ÉTIREMENT DE L’HISTOGRAMME
 Image dont la dynamique est [min,max]
 Objectif de l’étirement de l’histogramme est le
recadrage de la dynamique de son histogramme
de façon à utiliser toute la plage des niveaux de
gris [0,L-1] (L=256 pour une image 8bits)
améliorer le contraste de l’image

0 255 7/73

min max
ALGORITHME DE L’ÉTIREMENT DE L’HISTOGRAMME

 Soit I(i,j) l’image source codée sur L niveaux (256 pour


une image en niveau de gris)
 On étire la dynamique en réechelonnant les niveaux de
gris entre 0 et L-1

exemple:
image codée sur 8 bits
Recadrage de la
dynamique entre 0 et 255

8/73
ALGORITHME DE L’ÉTIREMENT DE L’HISTOGRAMME
Image I Histogramme de I
%
255
identité

255 0 255
min max
Image I’ Etirement de l’histogramme
255 Histogramme de I’

9/73
255
min max
0 255
ALGORITHME DE L’ÉTIREMENT DE L’HISTOGRAMME

for i=1:nblig
for j=1:nbcol
R(i,j) = 255*(I(i,j)-minI) / (maxI-minI);
end;
end;

10/73
Pas optimal
ALGORITHME DE L’ÉTIREMENT DE L’HISTOGRAMME

Utilisation d’une LUT (Look Up Table)

for k=1:256
LUT[k]=255*(k-1-minI)/(maxI-minI);
end;
!!!Attention, sous Matlab,
for i=1:nblig la première case du tableau
for j=1:nbcol est 1 et non pas 0

R(i,j) =LUT[I(i,j)+1];
end;
end;
11/73
ALGORITHME DE L’ÉTIREMENT DE L’HISTOGRAMME AVEC
DES SEUILS

 Cette transformation est une transformation


linéaire par morceaux sur l’intervalle [0, L-1]
(L=256 pour une image 8bits)

 Effet
 Amélioration du contraste de l’image

12/73
ALGORITHME DE L’ÉTIREMENT DE L’HISTOGRAMME AVEC
DES SEUILS

Image I identité Histogramme de I


255
%

255
0 255
Smin Smax
Transformation de l’étirement
Image I’ de l’hisogramme avec des seuis
255 Histogramme de I’

13/73
255
min max
Smin Smax 0 255
ALGORITHME DE L’ÉTIREMENT DE L’HISTOGRAMME AVEC
DES SEUILS

 On remplace, dans la formule de l’étirement de


l’histogramme, min et max respectivement par Smin
et Smax

avec min(I (i, j)) Smin et Smax  max(I(i, j))

 Et saturation des niveaux de gris < Smin


 Saturation des niveaux de gris > Smax

I'(i, j) 0  I'(i, j) 0
I'(i, j)  L-1  I'(i, j)  L-1 14/73
ALGORITHME DE L’ÉTIREMENT DE L’HISTOGRAMME AVEC
DES SEUILS

L-1
I '(i, j)  (I (i, j)  Smin )
Smax  Smin

 Effet:
 rehaussement du contraste des niveaux
Smin<I(i,i) < Smax
 saturation
 à 0 des niveaux min(I(i,i)) < I(i,i) < Smin

 à L-1 des niveaux Smax <I(i,i) < max(I(i,i))

15/73
ALGORITHME DE L’ÉTIREMENT DE L’HISTOGRAMME AVEC
DES SEUILS
Image I

Après étirement de l’histogramme

Après étirement de
l’histogramme avec
des seuils

16/73
ÉTIREMENT DE L’HISTOGRAMME
LIMITE

 Dans le cas où l'histogramme de l’image occupe


toute la plage de la dynamique  la méthode de
l’étirement de l’histogramme ne donne aucun
changement

 Exemple

17/73
ÉTIREMENT DE L’HISTOGRAMME
LIMITE

Image I’ après étirement de


Image I et son
l’histogramme et son histogramme
histogramme

18/73
ÉTIREMENT DE L’HISTOGRAMME
LIMITE

 Dans le cas où l'histogramme de l’image occupe


toute la plage de la dynamique  la méthode de
l’étirement de l’histogramme ne donne aucun
changement

 Solution  Egalisation de l’histogramme

19/73
EGALISATION DE L’HISTOGRAMME
 Ce n’est pas une transformation linéaire

 Objectif
 Améliorer le contraste de l’image

20/73
EGALISATION DE L’HISTOGRAMME

Le principe:
À partir d'une image initiale, fabriquer une
nouvelle image dans laquelle tous les niveaux
auront la même fréquence (ou même nombre de
pixels) de manière:
 Exacte : dans ce cas, on dira que
l'histogramme de la nouvelle image est "plat"
 Approchée: dans ce cas, on dira que
l'histogramme est égalisé.
21/73
EGALISATION DE L’HISTOGRAMME

L'histogramme de l'image L'histogramme plat après égalisation

22/73
ALGORITHME D’ÉGALISATION D’HISTOGRAMME

 Soit I(i,j) l’image source codée sur L niveaux (256


pour une image en niveau de gris)
 Déterminer son histogramme h

 Déterminer son histogramme cumulé hc

 Déterminer I’(i,j) par :

avec N le nombre de pixels de l’image

23/73
EGALISATION DE L’HISTOGRAMME

Image I après égalisation de


Image I et son
l’histogramme et son histogramme
histogramme

24/73
25/73
EGALISATION DE L’HISTOGRAMME

3 5 0 0 3 5 0 0

3 0 0 0 3 0 0 0

2 5 0 0 2 5 0 0

2 0 0 0 2 0 0 0

1 5 0 0 1 5 0 0

1 0 0 0 1 0 0 0

50 0 5 0 0

0 0
0 5 0 10 0 150 20 0 25 0 0 5 0 10 0 1 5 0 2 0 0 2 5 0

Image originale Image plus contrastée


(histogramme égalisé)
26/73
EGALISATION DE L’HISTOGRAMME

Image plus contrastée


(histogramme égalisé)
Image originale

27/73
EGALISATION D’HISTOGRAMME POUR UNE
IMAGE COULEUR

 Image couleur

28/73
EGALISATION D’HISTOGRAMME POUR UNE
IMAGE COULEUR

 Image couleur
Image originale

Image couleur plan Rouge plan vert plan Bleu

29/73

Image après égalisation d’histogramme


EXERCICE 1
Soit l’image à niveaux de gris suivante de taille 8x8 pixels codées sur 4 bits.
Donner la dynamique de l’image

 On cherche à faire un étirement de l’histogramme de cette image.


 Donner la formule générale de cette transformation

 Donner les valeurs des différentes constantes dans cette formule

 Représenter cette transformation (LUT)

 Donner le code Matlab correspondant (utiliser une LUT).

Qu'est-ce qu’il faut modifier dans la formule et le code de la question


précédente pour faire un recadrage de la dynamique avec seuils? Donner les
valeurs des seuils (Smin et Smax).

o Donner le code Matlab


permettant d’appliquer
à cette image une
égalisation d’histogramme
30/73
CORRIGÉ EXERCICE 1 (1/4)
 Dynamique de l’image = [2,13]
 Formule de l’étirement de l’histogramme
avec:
max=13
min=2 L=16 (image 4bits)

Remarque:
L=256 si l’image est codée sur 8 bits

 Transformation de l’étirement de l’histogramme (LUT)

31/73
CORRIGÉ EXERCICE 1 (2/4)
 Code Matlab I=imread(’image1.jpg’);
[h,w]=size(I);
IMin=double(min(I(:)));
IMax=double(max(I(:)));

Alpha=15/(Imax-IMin);

for k=1:16
LUT(k)=uint8(round(Alpha*((k-1)-IMin)));
%%round() arrondi au plus proche entier
end
IR=uint8(zeros(h,w));
for i=1:h
for j=1:w
R(i,j)=uint8(LUT(double(I(i,j))+1));
end
end
32/73

figure;
imshow(R)
CORRIGÉ EXERCICE 1 (3/4)
 Remplacer, dans la formule précédente et le code précédent
 IMin par Smin
 Imax par Smax
 Plus appliquer la saturation
 R(i,j) < 0  R(i,j) = 0
 R(i,j) > 15  R(i,j) = 15
 Exemple de valeurs pour Smin et Smax:
 Smin = 3
 Smax= 12

33/73
CORRIGÉ EXERCICE 1 (4/4)
 Code Matlab de l’égalisation de l’histogramme

Alpha=15/HC(16); %% équivalent à 15/(h*w)

for k=1:16
LUT(k)=uint8(round(Alpha*HC(k-1)));
end;

IE=uint8(zeros(h,w));
for i=1:h
for j=1:w
IE(i,j)=uint8(LUT(double(I(i,j))+1));
end;
end;

figure;
imshow(IE);
34/73
Autres transformations d’histogramme

35/73
Autre transformations linéaire : inversion

Transformation identité
 aucun changement dans l’image
 I = I’

255 identité

gris en sortie
niveau de
0 niveau de
255
gris en entrée

36/73
Autre transformations linéaire : inversion

gris en sortie
niveau de
niveau de
gris en entrée

37/73
TRANSFORMATIONS LINÉAIRES PAR MORCEAUX

 Objectif
 Changement local du niveau de gris d’une image
binarisation, filtrage
 Inversion locale du contraste  inverser localement les
niveaux de gris
 Expansion locale de la dynamique  rehaussement
du contraste localement
 Compression locale de la dynamique  diminution
du contraste localement

38/73
Autre transformation linéaire par morceaux :
Seuillage
• Conserver dans une image que 2 niveaux de gris (noir
ou blanc)
• soit en convertissant en noir tous les niveaux de
gris inférieurs à un seuil et en blanc tous ceux qui
dépassent le seuil  seuillage utilisant un seul seuil
• soit en convertissant en blanc toutes les valeurs
comprises entre deux seuils, et en noir tout le
reste  seuillage avec fenêtre d’intensité
• Objectif:
• mise en évidence d’une zone de l’histogramme
• différencier les objets du fond
39/73
Autre transformation linéaire par morceaux
Seuillage avec un seul seuil

Affecter le niveau 255 aux pixels

gris en sortie
dont la valeur est supérieure à un

niveau de
seuil S et 0 le niveau aux autres
niveau de
gris en entrée

40/73
EXERCICE 2
Soit l’image à niveaux de gris suivante de taille 8x10 pixels et dont les
valeurs des niveaux de gris sont codées sur 8 bits.
 On veut binariser cette image: donner la valeur du seuil choisi,
l’image résultat et le code Matlab correspondant

41/73
CORRIGE EXERCICE 2 (1/2)
 L’histogramme présente quatre pics qui correspondent aux niveaux
de gris suivants 2, 100, 150 et 200.
 Le niveau de gris 2 (sombre) étant très éloigné des trois autres
niveaux de gris 100, 150 et 200 (des nuances de gris clair)  on peut
donc choisir une valeur du seuil S qui soit >2 et <100, seuil S
compris entre 3 et 99

Histogramme
35
Nombres de pixles

30
25
20
15
10
5
0
2 100 150 200
Niveaux de gris

42/73
CORRIGE EXERCICE 2 (2/2)

Exemple Image transformée après


seuil = 3 binarisation par seuillage

function R =Transform(I, seuil)


[h,w] = size(I) ; 0 0 0 1 1 1 1 0 0 1
R=uint8(zeros(h,w)); 1 1 0 0 1 1 0 0 1 1
for i=1:h
1 1 1 0 0 0 0 1 1 1
for j=1:w
if (I(i,j) > seuil ) 1 1 1 0 0 0 0 1 1 1

R(i,j)=uint8(1); 0 1 1 0 0 0 0 1 1 1
end 0 1 1 0 1 1 0 1 1 1
end
0 1 1 0 1 1 0 1 1 1

I=imread(’image1.jpg’); 0 1 1 0 1 1 0 1 1 1

R = Transform(I,3);
figure(), imagesc(R) ;
43/73
Autre transformation linéaire par morceaux
Seuillage avec fenêtre d’intensité
• Tous les pixels ayant des niveaux de gris situés entre
a et b seront de niveau Nmax, tous les autres seront
de niveau 0.

• Exemple: fonction de
seuillage avec fenêtre

gris en sortie
niveau de
d’intensité entre 30 et 100,
Nmax dans cet exemple est
égaleà255
niveau de
gris en entrée
44/73
AUTRE TRANSFORMATION LINÉAIRE PAR MORCEAUX AVEC
SATURATION

 L'image I1 montre des traces grises.


 On peut les supprimer à l'aide d'une LUT (les nuances de
gris dans le fond de l’image sont remplacées par du blanc)
 Tous les niveaux de gris >127 sont saturés à 255

 Objectif: Filtrage de l’image

gris en sortie
niveau de

45/73

niveau de
gris en entrée
TRANSFORMATION LINÉAIRE PAR MORCEAUX
 Forme générale de la transformation linéaire
I’(i,j) = α I(i,j) + β

avec α appelé pente locale ou gain


 Effet dépend de la valeur de α
 α > 1  expansion de la dynamique (rehaussement du
contraste)
 0 < α < 1 compression de la dynamique
(diminution du contraste)
 Remarque:
 α = 0  palier horizontal  perte d’information 46/73

 α < 0  inversion du contraste


TRANSFORMATION LINÉAIRE PAR MORCEAUX

 Ces fonctions de transformation peuvent être plus au


moins complexes
 Quelques exemples avec des pentes positives

expansion de la dynamique expansion de la dynamique


des zones claires des zones sombres
gris en sortie
niveau de

gris en sortie
niveau de

niveau de gris en entrée 47/73


niveau de gris en entrée
Exemple 1
Exemple 2
TRANSFORMATION LINÉAIRE PAR MORCEAUX

 Calcul des coefficients


pour ces deux exemples

expansion de la dynamique expansion de la dynamique


de la zone claire de la zone sombre
gris en sortie
niveau de

gris en sortie
niveau de

niveau de gris en entrée 48/73


niveau de gris en entrée
Exemple 1
Exemple 2
TRANSFORMATION LINÉAIRE PAR MORCEAUX
EXEMPLE 1
 si I(i,i) < 60  α= b/a= 20/60 < 1
 si I(i,i) > 60  α= 255-b/255-a = 255-20/255-60 > 1 
expansion de la dynamique des zones claire de [60,255] à
[20,255]
 Effet principal  assombrissement des zones claires
b = 20

49/73

a = 60
TRANSFORMATION LINÉAIRE PAR MORCEAUX
EXEMPLE 1
 Exemple

image originale I
image transformée I’

Effet principal:
assombrissement des zones claires
b = 20

50/73

a = 60
Transformation
TRANSFORMATION LINÉAIRE PAR MORCEAUX
EXEMPLE 2
 si I(i,i) < 150  α > 1  expansion de la dynamique des
zones sombres ([0,150]  [0,220] )
 si I(i,i) > 150  0<α < 1  compression de la dynamique de
la zone claire ( [150,255]  [220,255])
 Effet principal

éclaircissement des zones sombres

b = 220

51/73
a = 150
TRANSFORMATION LINÉAIRE PAR MORCEAUX
EXEMPLE 2
 Exemple

image originale I
image transformée I’
b = 220

Effet principal:
éclaircissement des zones sombres

52/73

a = 150
Transformation
image originale I

image transformée I’ image transformée I’


éclaircissement des zones sombres
assombrissement des zones claires
b = 220

b = 20 53/73
a = 150 a = 60
Transformation Transformation
TRANSFORMATION LINÉAIRE PAR MORCEAUX
EXEMPLE 3

a1 = 120
a2=160
b1 =30
b2 = 230

image originale I

• si pente > 1  rehaussement du


contraste
• si 0<pente < 1  diminution du 54/73
contraste
image transformée I’
TRANSFORMATION LINÉAIRE PAR MORCEAUX
EXEMPLE4

%
255

255 0 255
Smin Smax
255

255
min max
Smin Smax 0 255 55/73
S
Autre transformations linéaire par morceaux

 Transformation utilisant des paliers de mêmes


largeurs et de hauteurs réparties uniformément
 Effet :
 Seuls les niveaux des paliers sont conservées
 Apparition de discontinuité et d’artefacts

56/73
TRANSFORMATIONS LINÉAIRES PAR MORCEAUX
RÉSUMÉ

 Transformations localement de la forme


I’(i,j) = α I(i,j) + β

 Pente positive α > 1  expansion de la dynamique


 Pente positive 0 <α < 1  compression de la dynamique
 Pente négative α < 0  inversion du contraste
 exemple I’(i,j) = 255 – I(i,j)  α= -1 et β = 255

 Paliers horizontaux α = 0  perte d’information


 Sauts verticaux  discontinuité et artefacts (transition
non continue)
57/73
TRANSFORMATION NON LINÉAIRE

58/73
TRANSFORMATION NON LINÉAIRE
EXEMPLE1
Image originale Image transformée

Effet:
expansion de la
dynamique des zones
claires 
assombrissement des
zones claires

59/73
TRANSFORMATION NON LINÉAIRE
EXEMPLE2
Image originale
Image transformée

Effet
expansion de la
dynamique des zones
sombres
éclaircissement des
zones sombres

60/73
TRANSFORMATION NON LINÉAIRE
EXEMPE 3:
TRANSFORMATION LOGARITHMIQUE

 Effet
 Expansion de la dynamique des zones sombres
 Compression de la dynamique des zones claires
  éclaircissement de l’image

61/73
TRANSFORMATION NON LINÉAIRE
EXEMPLE 4: CORRECTION GAMMA
 L’intensité mesurée par une caméra est une
fonction logarithmique de l’intensité réelle
 L’intensité mesurée par un moniteur CRT est
une fonction exponentielle de l’intensité réelle
 Correction Gamma de ces défauts

62/73
TRANSFORMATION NON LINÉAIRE
EXEMPLE 4: CORRECTION GAMMA

63/73
TRANSFORMATION NON LINÉAIRE
EXEMPLE 4: CORRECTION GAMMA

64/73
CORRECTION GAMMA: EXEMPLE

65/73
PROFIL

Un profil est une représentation de la variation


du niveau I(x,y) des pixels le long d'une ligne
ou d'une colonne donnée.

66/73
RECHERCHE DE NIVEAUX

• Appelé aussi isolation de niveaux de gris.

• Cette opération consiste à isoler et à afficher tous les


pixels qui ont même niveau qu'un pixel donné.

• Ce procédé permet de mettre en évidence des détails de


même nature sur une image.

• Les instructions en matlab


– Imhist (Calcul d’histogramme)
67/73
– Improfile (Calcul du profil)
– Impixel (Isolation du pixel)
EXERCICE 3
 Soit l’image I1 et son histogramme H1.
 Différents traitements ont été appliqués à l’image I1. Pour chacune
des images I2 à I9, trouver son histogramme parmi les histogrammes
H2 à H9. Justifier votre choix en spécifiant notamment le plus
précisément possible quel est le traitement qui a été effectué sur
chaque image I2 à I9.

68/73

image I1 histogramme H1
69/73
CORRIGÉ EXERCICE 3

I9-H3 I6-H4 I2-H8


Transformation inverse Transformation identité Egalisation d’histogramme
I7-H9 I4-H7 I8-H6
Etirement de Augmentation de la luminance : Diminution de la luminance:
l’histogramme: zone sombre de l’histogramme zone claire de l’histogramme
utilisation de toute la vide vide
plage des niveaux de I’ = I + a (avec a > 1) I’ = I – a (avec a > 1)
gris translation de l’histogramme  translation de
vers la droite. l’histogramme vers la gauche
(image plus claire) (image plus sombre)
I5-H2 II3-H5
seuillage: image flou : cette image a subi un
pixels < seuil  0 filtrage et une élimination des
pixels >= seuil  1 pixels de fluctuation
car dans l’histogramme il y a
deux pics, (noir et blanc ) 70/73
EXERCICE 4
 Soit l’image I et son histogramme H.
 Cette image a subi plusieurs transformations. Trouver pour chaque
image transformée de I1 à I4, la transformation correspondante de T1
à T4 en nommant, à chaque fois, la transformation appliquée.

71/73
image I histogramme H
I transformée Histogramme Transformation
T1
I1

I2 T2

I3 T3

I4 T4

72/73
CORRIGE EXERCICE 4
I1-T4 I2-T1
Augmentation de la luminance: Etirement de l’histogramme avec des
zone sombre de l’histogramme est seuils (saturation à 0 et à 255)
vide : l’histogramme est translaté Effet : rehaussement du contraste de l’image
vers la droite + saturation à 255

I4-T2 T3
Egalisation de l’histogramme Correction Gamma avec Gamma < 1
Effet : rehaussement du contraste (Gamma=0.2)
de l’image Effet : expansion de la dynamique des zones
sombres  éclaircissement de l’image

Correction Gamma avec Gamma = 2.5 > 1  Effet : expansion de la


dynamique des zones claires  assombrissement de l’image

73/73

Vous aimerez peut-être aussi