Vous êtes sur la page 1sur 7

COMPTE RENDU TP1

TRAITEMENT D’IMAGE
Manipulation et transformation des images numériques

JEBRI MEJDI
3EME MÉCATRONIQUE GROUPE D
Objectif :
- Initiation à la manipulation des images numériques sous Matlab.
- Echantillonner et quantifier des images numériques.

I. Qu’est-ce qu’une image numérique ?


Une image numérique est une mosaïque de points unicolores (pixels).
Plus elle ne comporte de points mieux elle est définie.
Quand on agrandit une image a l'écran ou en l'imprimant, on ne change pas le nombre de
points, on les rend simplement plus ou moins gros et donc visibles.
On peut définir une image suivant les circonstances et l'usage qu'on veut en faire par son poids,
sa taille, sa définition a une taille d'impression donnée.

II. Lecture, visualisation et sauvegarde d’image


Code et interprétation Simulation
clc; clear all; close all
% fermer et effacer toutes les opérations
réaliser avant.

Im1=imread('lena.bmp');
% lire image lena.bmp et la stocker dans la
variable Im1

%Im1=imread('C:\Users\jebri\Desktop\semestre
_5\TP\Traitement\image\lena.bmp');
%On ajoute l'emplacement de l'image si elle
n'est pas incluse dans le dossier contenant
le M-file

figure(1),subplot(211)
imshow(Im1)
title('imshow(Im1)');
subplot(212)
imagesc(Im1)
title('imagesc(Im1)');
colormap('gray')
% Affichage des images

a=size(Im1)
% resultat [nombre de lignes , nombres de
colones]

b=im2double(Im1);
%convertir les valeurs de la matrice de
l'image en double et divisé par
%255(la valeur maximum d'un pixel) pour
donner des valeurs comprises entre 0 et 1

c=double(Im1); a=
%convertir les valeurs de la matrice de 256 256
l'image en double, les valeurs
%restent les mêmes mais avec le format
double
d=
d=Im1(120,200) uint8
%le niveau du gris du pixel situer en 25
(120,200)
Im2=Im1(79:178,79:178);

1
JEBRI MEJDI
%matrice 100*100 en milieu e=
e=size(Im2) 100 100
%verification de la taille

figure(2),imagesc(Im2)
colormap('gray'),title('Im2');
%affichage de l'image

imwrite(Im2,'lenapart1.jpg');
imwrite(Im2,'lenapart2.bmp');
%sauvegarde de l'image sous diffèrent types

Im3=imread('lenapart1.jpg')
Im4=imread('lenapart2.bmp')
%affectation des nouvelles images dans des f=
nouvelles matrices 100 100
f=size(Im3) g=
g=size(Im4) 100 100

figure(3),subplot(211)
imshow(Im3)
title('Im3');
subplot(212)
imshow(Im4)
title('Im4');

Les images Im3 et Im4 ont le même nombre de pixels,


sont identique à l’œil nue, ils diffèrent seulement en
taille, les images du type BMP sont plus grandes que
les images du type JPG.

2
JEBRI MEJDI
III. Système de représentation de couleurs et types d’images
Code et interprétation Simulation
clc; clear all; close all
% fermer et effacer toutes les opérations réaliser avant.

Im1=imread('clowm.bmp');
% lire image clowm.bmp et la stocker dans la variable Im1

Im2=rgb2hsv(Im1);
% convertir l'image en format HLS et l'enregistrer dans la
variable Im2

Im3=rgb2ycbcr(Im1);
% convertir l'image en format CMY et l'enregistrer dans la
variable Im3

figure(1),imshow(Im1)
title('Im1'); %affichage de l'image original en format RGB

figure(2),imshow(Im2)
title('Im2'); %affichage de l'image en format HLS

figure(3),imshow(Im3)
title('Im3'); %affichage de l'image en format CMY

figure(4), extrait_comp_rgb(Im1);
%affichage de l'image original en format RGB et afficher
ses trois composants séparément

figure(5),extrait_comp_hsv(Im1);
%affichage de l'image original en format HLS et afficher
ses trois composants séparément

figure(6),extrait_comp_cmy(Im1);
%affichage de l'image original en format CMY et afficher
ses trois composants séparément
En-tete des fonctions :
function[C1,C2,C3]=extrait_comp_rgb(matriceimage)
function[C1,C2,C3]=extrait_comp_hsv(matriceimage)
function[C1,C2,C3]=extrait_comp_cmy(matriceimage)

3
JEBRI MEJDI
Codes des trois fonctions :
RGB HSV CMY
C1=matriceimage(:,:,1); Im=rgb2hsv(matriceimage); Im=rgb2ycbcr(matriceimage);
C2=matriceimage(:,:,2); C1=Im(:,:,1); C1=Im(:,:,1);
C3=matriceimage(:,:,3); C2=Im(:,:,2); C2=Im(:,:,2);
subplot(1,4,1) C3=Im(:,:,3); C3=Im(:,:,3);
imshow(matriceimage); subplot(1,4,1) subplot(1,4,1)
title('original') imshow(Im),title('original') imshow(Im),title('original')
subplot(1,4,2) subplot(1,4,2) subplot(1,4,2)
imshow(C1), title('R') imshow(C1), title('H') imshow(C1), title('C')
subplot(1,4,3) subplot(1,4,3) subplot(1,4,3)
imshow(C2), title('G') imshow(C2),title('S') imshow(C2), title('M')
subplot(1,4,4) subplot(1,4,4) subplot(1,4,4)
imshow(C3), title('B') imshow(C3), title('V') imshow(C3), title('Y')

IV. Re-échantillonnage et quantification


a) Re-échantillonnage
Le ré-échantillonnage est la discrétisation et la diminution de nombre de pixels de l’image.
Plus on diminue le nombre de pixels en supprime des détails de l’image ce qui rend l’image
flous et moins compréhensible.

Code et interprétation Simulation


clc; clear all; close all
Im1=imread('lena.bmp');
sousechan(Im1);

Code de la fonction :
function Imse=sousechan(ma)
[a b]= size(ma)
% extraire le nombre de lignes et de colonnes

Imd2=ma(1:2:a,1:2:b);
% prendre un pixel sur deux en ligne et en colonne

Imd4=ma(1:4:a,1:4:b);
% prendre un pixel sur quatre en ligne et en colonne

figure(1);
subplot(311),imshow(ma),title('Original');
subplot(312),imshow(Imd2);
title('Image échantillonnée par 2');
subplot(313),imshow(Imd4);
title('Image échantillonnée par 4');
% Affichage des trois images

b) Quantification
La quantification représente le nombre de niveau de gris que peut prendre un pixel, c’est-à-
dire sur combien de bits est codé chaque pixel.

4
JEBRI MEJDI
Code de la fonction de quantification: Code principale :
function Imse=quantification(Im1,q) clc; clear all; close all
%Im1 l'image a quantifier Im1=imread('lena.bmp');
%q= la valeur maximale que peut avoir figure(1) , subplot(181);
un pixel imshow(Im1),title('Original');
subplot(182),
Imse=round((im2double(Im1))*q); g1=quantification(Im1,127);
%im2double permet de rendre les valeur title('128');
d'image initial entre 0 et 1 subplot(183),
%round permet d'arrondir les valeurs de g2=quantification(Im1,63);
la matrice obtenue, les valeurs doivent title('64');
être des entiers subplot(184),
g3=quantification(Im1,31);
imshow(uint8(Imse)); title('32');
%uint8 permet de convertir les valeurs subplot(185),
de la matrice obtenu en uint8 pour g4=quantification(Im1,15);
qu’on puissent l'afficher title('16');
subplot(186), g5=quantification(Im1,7);
title('8');
subplot(187), g6=quantification(Im1,3);
title('4');
subplot(188), g7=quantification(Im1,1);
title('2');

Image couleur : Code principale :


clc; clear all; close all subplot(183),
Im2=imread('clowm.bmp'); g23=quantification(C3,63),title('64');
C1=Im2(:,:,1); subplot(184),
C2=Im2(:,:,2); g33=quantification(C3,31),title('32');
C3=Im2(:,:,3); subplot(185),
figure(1) , subplot(181), g43=quantification(C3,15),title('16');
imshow(C1),title('rouge'); subplot(186),
subplot(182), g53=quantification(C3,7),title('8');
g11=quantification(C1,127),title('128'); subplot(187),
subplot(183), g63=quantification(C3,3),title('4');
g21=quantification(C1,63),title('64'); subplot(188),
subplot(184), g73=quantification(C3,1),title('2');
g31=quantification(C1,31),title('32'); %blue
subplot(185), g1(:,:,1)=g11;
g41=quantification(C1,15),title('16'); g1(:,:,2)=g12;
subplot(186), g1(:,:,3)=g13;
g51=quantification(C1,7),title('8'); g2(:,:,1)=g21;
subplot(187), g2(:,:,2)=g22;
g61=quantification(C1,3),title('4'); g2(:,:,3)=g23;
subplot(188), g3(:,:,1)=g31;
g71=quantification(C1,1),title('2'); g3(:,:,2)=g32;
%rouge g3(:,:,3)=g33;
figure(2) , subplot(181), g4(:,:,1)=g41;
imshow(C2),title('Vert'); g4(:,:,2)=g42;
subplot(182), g4(:,:,3)=g43;
g12=quantification(C2,127),title('128'); g5(:,:,1)=g51;
subplot(183), g5(:,:,2)=g52;
g22=quantification(C2,63),title('64'); g5(:,:,3)=g53;
subplot(184), g6(:,:,1)=g61;
g32=quantification(C2,31),title('32'); g6(:,:,2)=g62;
subplot(185), g6(:,:,3)=g63;
g42=quantification(C2,15),title('16'); g7(:,:,1)=g71;
subplot(186), g7(:,:,2)=g72;
g52=quantification(C2,7),title('8'); g7(:,:,3)=g73;
subplot(187), figure(4) , subplot(181),
g62=quantification(C2,3),title('4'); imshow(Im2),title('Original');
subplot(188), subplot(182), imshow(g1),title('128');
g72=quantification(C2,1),title('2'); subplot(183), imshow(g2),title('64');
%vert subplot(184), imshow(g3),title('32');
figure(3) , subplot(181), subplot(185), imshow(g4),title('16');
imshow(C3),title('Blue'); subplot(186), imshow(g5),title('8');
subplot(182), subplot(187), imshow(g6),title('4');
g13=quantification(C3,127),title('128'); subplot(188), imshow(g7),title('2');

5
JEBRI MEJDI
V. Conclusion :
Afin de faire le traitement d’image, Matlab contient dans sa base de donnée des fonctions
applicables sur les images pour la transformer d’un format a un autre, en extraire des zones
particulières, réduire leurs tailles.
En fin pour Matlab, l’image est traitée comme étant un ensemble de matrice de même
dimensions (ce qui est le cas) dont leurs valeurs sont comprises entre 0 et 255

6
JEBRI MEJDI

Vous aimerez peut-être aussi