Vous êtes sur la page 1sur 19

Ministère de l’Enseignement Supérieur et de la Recherche

Scientifique
Ecole Nationale d’Electronique et des Télécommunications de Sfax

TP2 :
Outils pratiques et restauration des
images

Elaboré par :

 ABDALLAH AYA

Encadré par :
 MR. AMRI HEDI

Classe :

2 GII 1

Année universitaire : 2022/2023


ENET’COM Traitement d’images 2ème Année GII 1

Un histogramme est un graphique statistique permettant de représenter la


distribution des intensités des pixels d'une image, c'est-à-dire le nombre de
pixels pour chaque intensité lumineuse. Par convention un histogramme
représente le niveau d'intensité en abscisse en allant du plus foncé (à gauche)
au plus clair (à droite).
Ainsi, l'histogramme d'une image en 256 niveaux de gris sera représenté par un
graphique possédant 256 valeurs en abscisses, et le nombre de pixels de
l'image en ordonnées.

Exercice n=°1 :

1ère chose à faire :

clear all;
clc;
close all;

1) Lire l’image photo00.bmp et


l’afficher :
Im=imread('photo00.bmp'); //lire l’image
figure, imshow(Im) // afficher la photo

Résultat :
ENET’COM Traitement d’images 2ème Année GII 1

2) Nous avons afficher la valeur du pixel (47,1) puis


celle du pixel (11,256) de l’image Im :
x = Im(47,1); // x prend la valeur du pixel (47,1)
y = Im(11,256); // y prend la valeur du pixel
(11,256)

Résultat :
250

200

150

100

50

0
0 50 100 150 200 250 300

200

180

160

140

120

100

80

60

40

20

0
0 50 100 150 200 250 300
ENET’COM Traitement d’images 2ème Année GII 1

3) Nous avons affiché la ligne 4 et


la colonne 4 de l’image Im :
l = Im(4, :);
c = Im(:, 4);

4) Le profil de la ligne 4 et la
colonne 4 de l’image Im :
figure,
plot (Im(4, :))
figure,
plot (Im(:, 4))

5) Voici le scanning de l’image Im


selon le pixel (47,1) :
[nl nc]=size(Im);
Val= Im(47,1)
for i=1:nl
for j=1:nc
if (Im(i,j)==Val)
ImScan(i,j)=1;
else
ImScan(i,j)=0 ;
end
end
end
figure,
imshow(ImScan)
ENET’COM Traitement d’images 2ème Année GII 1

Voici le scanning de l’image Im selon


le pixel (11,256) :
[nl nc]=size(Im);
Val= Im(11,256)
ImgScan2=zeros(nl,nc);
F(:,:)=find(Im==Val);
ImgScan2 (F)=1;
figure,
imshow(ImgScan2)

6+7) Nous avons ici afficher les 4


histogrammes de l’image Im : 1)
Histogramme, 2) Histogramme cumulé,
3) Histogramme normalisé, 4)
Histogramme cumulé normalisé :
h = imhist(Im); // Histogramme
hc = cumsum(h); // Histogramme cumulé
hn = h/(nl * nc); // Histogramme normalisé
hnc= hc/(nl * nc); // Histogramme cumulé normalisé
figure,
subplot(3,2,1:2),imshow(Im), title('Im')
subplot(3,2,3),stem(0: 255, h),title('Him')
subplot(3,2,4),stem(0: 255, hc), title('Himc')
ENET’COM Traitement d’images 2ème Année GII 1

subplot(3,2,5),stem(0: 255, hn),title('Himn')


subplot(3,2,6),stem(0: 255, hnc), title('Himnc')

Résultat :
Im

4
Him x 10 Himc
1000 10

500 5

0 0
0 100 200 300 0 100 200 300
Himn Himnc
0.02 1

0.01 0.5

0 0
0 100 200 300 0 100 200 300

7)
col=imread('col01.jpg'); // Lire l’image ‘col01.jpg’
figure, imshow(col)
ENET’COM Traitement d’images 2ème Année GII 1

R = col(:, :, 1); //Rouge


V = col(:, :, 2); //Vert
B = col(:, :, 3); //Bleu

Hr = imhist(R); //L’histogramme de Rouge


Hv = imhist(V); //L’histogramme de Vert
Hb = imhist(B); //L’histogramme de Bleu

figure,
subplot(3,3,4), stem(Hr, 'r'), title('Hr')
subplot(3,3,5), stem(Hv, 'g'), title('Hv')
subplot(3,3,6), stem(Hb, 'b'), title('Hb')
subplot(3,3,8), stem(Hb, 'b'), hold on ,stem(Hv,
'g'), hold on, stem(Hr, 'r'), title('Hcol')
subplot(3,3,2), imshow(col), title('col')

Résultat :

col

Hr Hv Hb
10000 2000 10000

5000 1000 5000

0 0 0
0 200 400 0 200 400 0 200 400
Hcol
10000

5000

0
0 200 400
ENET’COM Traitement d’images 2ème Année GII 1

9)

P1=imread('photo00.bmp'); //Lire l’image‘photo00.bmp’


figure, imshow(P1)

P2=imread('photo01.bmp'); //Lire l’image‘photo01.bmp’


figure, imshow(P2)

P3=imread('photo02.bmp'); //Lire l’image‘photo02.bmp’


figure, imshow(P3)

Résultat : Voici l’affichage de trois images


respectivement P1, P2 et P3 :
ENET’COM Traitement d’images 2ème Année GII 1
ENET’COM Traitement d’images 2ème Année GII 1

L1 = mean2(double(P1)); //La luminance de l’image


‘photo00.bmp’
L2 = mean2(double(P2)); //La luminance de l’image
‘photo01.bmp’
L3 = mean2(double(P3)); //La luminance de l’image
‘photo02.bmp’

C1 = sqrt(sum(sum((double(P1) - L1).^2))/(nc * nc));


//La Contraste de l’image ‘photo00.bmp’

C2 = sqrt(sum(sum((double(P2) - L2).^2))/(nc * nc));


//La Contraste de l’image ‘photo00.bmp’

C3 = sqrt(sum(sum((double(P3) - L3).^2))/(nc * nc));


//La Contraste de l’image ‘photo00.bmp’

Hp1 = imhist(P1); //L’histogramme de P1


Hp2 = imhist(P2); //L’histogramme de P2
Hp3 = imhist(P3); //L’histogramme de P3

figure,
subplot(3,2,1), imshow(P1), title('Im')
subplot(3,2,2), stem(0: 255, Hp1), title ( [ 'L = '
, num2str(L1), ' C = ' , num2str(C1) ] )
subplot(3,2,3), imshow(P2), title('Him')
subplot(3,2,4), stem(0: 255, Hp2), title ( [ 'L = '
, num2str(L2), ' C = ' , num2str(C2) ] )
subplot(3,2,5), imshow(P3), title('Himn')
subplot(3,2,6), stem(0: 255, Hp3), title ( [ 'L = '
, num2str(L3), ' C = ' , num2str(C3) ] )
ENET’COM Traitement d’images 2ème Année GII 1

Résultat : Voici le résultat obtenu avec la calcul de la


luminance et la contraste de chaque image P1, P2 et P3 :

Im L = 127.4545 C = 65.5852
1000

500

0
0 100 200 300
Him L = 63.9774 C = 32.8023
2000

1000

0
0 100 200 300
4
Himn L= 213.3794 C = 49.9482
x 10
4

0
0 100 200 300
ENET’COM Traitement d’images 2ème Année GII 1

Exercice n=°2 :

La 1ère chose à faire :


clear all;
clc;
close all;

1) Nous avons ici créé et afficher la matrice M qui


affecté à la variable M :

M = [20 150 150 50;


100 20 50 30;
200 50 20 30;
200 200 60 60]
M1 = imadjust(uint8(M))

2)
3) Ici on a fait l’égalisation de
l’histogramme sur 2 ,3,4,5 raies pour
la matrice M.
M2 = histeq(uint8(M), 2) // l’égalisation de
l’histogramme sur 2 raies pour la matrice M.
M3 = histeq(uint8(M), 3) // l’égalisation de
l’histogramme sur 3 raies pour la matrice M.
ENET’COM Traitement d’images 2ème Année GII 1

M4 = histeq(uint8(M), 4) // l’égalisation de
l’histogramme sur 4 raies pour la matrice M.
M5 = histeq(uint8(M), 5) // l’égalisation de
l’histogramme sur 5 raies pour la matrice M.

Résultat :
ENET’COM Traitement d’images 2ème Année GII 1

8) Ici ona lire et afficher les deux images


'image1.bmp' et 'image2.bmp' :
clear all;
clc;
close all;
Im=imread('image1.bmp'); // Lire l’image 'image1.bmp'
figure, imshow(Im) //L’afficher

ImG=imread('image2.bmp'); //Lire l’image 'image2.bmp'


figure, imshow(ImG) //L’afficher
ENET’COM Traitement d’images 2ème Année GII 1

10)
Im4 = histeq(Im,4); // l’égalisation de l’histogramme
sur 4 raies pour l’image Im.
Im8 = histeq(Im,8); // l’égalisation de l’histogramme
sur 8 raies pour l’image Im.
Im16 = histeq(Im,16); // l’égalisation de
l’histogramme sur 16 raies pour l’image Im.

H = imhist(Im); //L’histogramme de Im
H4 = imhist(Im4); //L’histogramme de Im4
H8 = imhist(Im8); //L’histogramme de Im8
H16 = imhist(Im16); //L’histogramme de Im16

figure,
subplot(4,2,1), imshow(Im), title('Im')
subplot(4,2,2), stem(0: 255, H), title('Him')
subplot(4,2,3), imshow(Im4), title('Im4')
subplot(4,2,4), stem(0: 255, H4), title('H4')
subplot(4,2,5), imshow(Im8), title('Im8')
subplot(4,2,6), stem(0: 255, H8), title('H8')
subplot(4,2,7), imshow(Im16), title('Im16')
subplot(4,2,8), stem(0: 255, H16), title('H16')

Résultat : Voici l’affichage de ces dernières :


Im Him
10000

5000
0
0 100 200 300
4
Im4 x 10 H4
2
1
0
0 100 200 300
Im8 H8
10000
5000
0
0 100 200 300
Im16 H16
10000
5000
0
0 100 200 300
ENET’COM Traitement d’images 2ème Année GII 1

On répète la même chose pour l’image en niveau de gris


ImG :
ImG4 = histeq(ImG,4); // l’égalisation de
l’histogramme sur 4 raies pour l’image ImG.
ImG8 = histeq(ImG,8); // l’égalisation de
l’histogramme sur 8 raies pour l’image ImG.
ImG16 = histeq(ImG,16); // l’égalisation de
l’histogramme sur 16 raies pour l’image ImG.

Hg = imhist(ImG); //L’histogramme de ImG


Hg4 = imhist(ImG4); //L’histogramme de ImG4
Hg8 = imhist(ImG8); //L’histogramme de ImG8
Hg16 = imhist(ImG16); //L’histogramme de ImG16

figure,
subplot(4,2,1), imshow(ImG), title('ImG')
subplot(4,2,2), stem(0: 255, Hg), title('HImG')
subplot(4,2,3), imshow(ImG4), title('ImG4')
subplot(4,2,4), stem(0: 255, Hg4), title('H4')
subplot(4,2,5), imshow(ImG8), title('ImG8')
subplot(4,2,6), stem(0: 255, Hg8), title('H8')
subplot(4,2,7), imshow(ImG16), title('ImG16')
subplot(4,2,8), stem(0: 255, Hg16), title('H16')

Résultat : Voici l’affichage pour l’image ImG :


ENET’COM Traitement d’images 2ème Année GII 1

4
ImG x 10 HImG
2

1
0
0 100 200 300
4
ImG4 x 10 H4
5

0
0 100 200 300
4
ImG8 x 10 H8
4
2
0
0 100 200 300
4
ImG16 x 10 H16
2
1
0
0 100 200 300

11) Ici on a affiché l’image Im, son


histogramme, l’image étirée,
l’histogramme de l’image étirée,
l’image égalisée (R=16) et son
histogramme dans une même figure :
Ima = imadjust(Im);
Ha = imhist(Ima);

figure,
subplot(4,2,1), imshow(Im), title('Im')
subplot(4,2,2), stem(0: 255, H), title('Him')
subplot(4,2,5), imshow(Ima), title('Im Etirement')
subplot(4,2,6), stem(0: 255, Ha), title('H4
etirement')
subplot(4,2,3), imshow(Im16), title('Im16
Egalisation')
subplot(4,2,4), stem(0: 255, H16), title('H16
Egalisation')
ENET’COM Traitement d’images 2ème Année GII 1

Résultat : Voici le résultat pour Im

Im Him
8000

6000

4000

2000

0
0 50 100 150 200 250 300

Im16 Egalisation H16 Egalisation


8000

6000

4000

2000

0
0 50 100 150 200 250 300

Im Etirement H4 etirement
8000

6000

4000

2000

0
0 50 100 150 200 250 300

On applique même chose sur l’image ImG :

ImGa = imadjust(ImG);
Hga = imhist(ImGa);

figure,
subplot(4,2,1), imshow(ImG), title('ImG')
subplot(4,2,2), stem(0: 255, Hg), title('Hgim')
subplot(4,2,5), imshow(ImGa), title('ImG Etirement')
subplot(4,2,6), stem(0: 255, Hga), title('Hg4
etirement')
subplot(4,2,3), imshow(ImG16), title('ImG16
Egalisation')
subplot(4,2,4), stem(0: 255, Hg16), title('Hg16
Egalisation')
ENET’COM Traitement d’images 2ème Année GII 1

Résultat : Voici le résultat pour l’image ImG :

ImG Hgim
15000

10000

5000

0
0 50 100 150 200 250 300

ImG16 Egalisation 4 Hg16 Egalisation


x 10
2

1.5

0.5

0
0 50 100 150 200 250 300

ImG Etirement 4 Hg4 etirement


x 10
2

1.5

0.5

0
0 50 100 150 200 250 300

Vous aimerez peut-être aussi