Rmiza Nahla
Classe: II3-II
Module : Atelier T.A.I
Compte rendu TP1:
Initiation au ToolBox Image Processing
de Matlab
III- Lecture, affichage et sauvegarde dune image :
1-
Commandes matlab :
autumn=imread('autumn.tif');
=imread('forest.tif'); %car il s'agit d'une image couleur indexée
cell=imread('cell.tif');
text=imread('text.png');
subplot(2,2,1); subimage(autumn); title('Autumn.tif');
subplot(2,2,2); subimage(cell); title('Cell.tif');
subplot(2,2,3); imshow(forest); colormap(map); axis on; title('forest.tif');
subplot(2,2,4); subimage(text); title('text.png');
Affichage :
La figure pr sent illustre les 4 types dimages support par matlab, Autumn.tif est de type couleur
RGB, limage Cell.tif est une image dintensit cest- -dire niveau de gris, puis nous avons limage
forest,tif qui est aussi une image couleur mais index e, et limage text.png est une image binaire.
2- Taille des images :
Commandes matlab :
sizeAut=size(autumn);
sizeForest=size(forest);
sizeCell=size(cell);
sizeText=size(text);
Ce qui donne le r sutat suivant :
On observe travers cette figure les diff rentes tailles, par exemple le type RGB pr sente 3 canaux de
couleurs (rouge, vert bleu) do la taille de limage x3 cette derni re est cod e sur 8 bits(uint8), de
m me pour limage cell mais elle ne poss de quune seule canal puisquelle sagit dune image
niveau de gris, le type de limage text.png est binaire do la classe logical.
Chaque type dimage a comme caract ristiques ses propres dimensions.
3- Cr ation dune nouvelle image :
Commandes matlab :
im=128*ones(256);
im(128-100:128+100 , 128-100:128+100)=0;
im(128-50:128+50 , 128-50:128+50)=255;
imnew=uint8(im);
imshow(imnew);
%sauvegarde de l'image sous le nom new.png:
imwrite(imnew,'new.png');
Publicité
Affichage :
4- Affichage des 3 composantes de limage autumn,tif :
Commandes matlab :
%Selection de la composante rouge:
autumn=imread('autumn.tif');
autumn(:,:,2)=0;
autumn(:,:,3)=0;
autumnRouge=autumn;
%Selection de la composante verte:
autumn=imread('autumn.tif');
autumn(:,:,1)=0;
autumn(:,:,3)=0;
autumnVert=autumn;
%Selection de la composante bleu:
autumn=imread('autumn.tif');
autumn(:,:,1)=0;
autumn(:,:,2)=0;
autumnBleu=autumn;
%Affichage des 3 couleurs:
subplot(2,2,1); subimage(autumnRouge); title('Rouge');
subplot(2,2,2); subimage(autumnBleu); title('Bleu');
subplot(2,2,3); subimage(autumnVert); title('Vert');
Affichage :
5- Conversion de la m me image un autre espace de couleur:
Comme lespace de couleur RVB i l existe aussi dautres espaces, dans cette exemple nous prenons
lespace HSV (Hue Saturation Value) ou Teinte Saturation Valeur, il poss de ainsi 3 composantes
savoir :
- La teinte qui est cod e suivant l'angle qui lui correspond sur le cercle des couleurs.
- Saturation qui pr sente lintensit de la couleur.
- Valeur qui est la brillance de la couleur.
Commandes matlab :
autumnhHSV=rgb2hsv(autumn);
imshow(autumnhHSV,[]); axis on;
Affichage :
6- Inversion des images cell.tif et text.png :
Linversion consiste inverser les couleurs dans limage en question, ce code matlab montre ce
principe :
textInverse= 255-text;
cellInverse=255-cell;
subplot(2,2,1); imshow(textInverse, []); title('Text Inverse');
subplot(2,2,2); imshow(text, []); title('text');
subplot(2,2,3); imshow(cellInverse, []); title('Cell Inverse');
subplot(2,2,4); imshow(cell, []); title('Cell');
Affichage :
Publicité
On observe que chaque pixel blanc dans limage originale devient noir dans la nouvelle image.
7- Transformation dune m me image dans dautres types dimages :
On peut convertir une image comme autumn.tif en dautres types dimages comme le type binaire,
index , niveau de gris.
Le code matlab suivant illustre la conversion dune image donn e en diff rents types dimages :
autumnBinaire=im2bw(autumn);
= rgb2ind(autumn,256);
colormap(map)
autumnGray=rgb2gray(autumn);
subplot(2,2,1); subimage(autumnBinaire); axis off; title('autumn binaire');
subplot(2,2,2); imshow(autumnIndex,[]);colormap(map); title('autumn couleur indexée');
subplot(2,2,3); subimage(autumnGray); axis off; title('autumn en niveau de gris');
subplot(2,2,4); subimage(autumn); axis off; title('autumn en couleur');
Affichage :
8- Conversion de limage forest.tif :
Commandes matlab :
=imread('forest.tif');
forestBinaire=im2bw(forestx);
forestRGB=ind2rgb(forestx,map1);
forestGray=rgb2gray(forestRGB);
subplot(2,2,1); imshow(forestx); colormap(map1); title('Forest');
subplot(2,2,2); subimage(forestGray); axis off; title('Forest Gray');
subplot(2,2,3); subimage(forestBinaire); axis off; title('Forest Binaire');
subplot(2,2,4); subimage(forestRGB); colormap(map1); axis off; title('Forest RGB');
Affichage :
VI- Manipulation dimages :
1- extraction dun carr de limage cell.tif contenant une cellule :
Commandes matlab :
cellCarre=cell(20:95 , 50:135);
figure
imshow(cellCarre);
Affichage :
2- Agrandissement de limage obtenue :
CellGrande=imresize(cellCarre,20);
(20 fois) !
3- Rotation de la m me image :
Commandes matlab :
CellRot=imrotate(cellCarre, 90);
figure
imshow(CellRot,[]);
Affichage :
V- Op rations arithm tique sur les images :
Publicité
1- Transformation de limage cell.tif :
Commandes matlab :
cell=imread(cell.tif) ;
celRe=double(cell);
%2 me m thode:
celRe=im2double(cell);
2- Quelques op rations sur deux images :
Commandes matlab :
celRe=double(cell);
brain=imread('brain.png');
brainRe=double(brain);
celRe(159:256, 191:256)=0;
Add=imadd(celRe, brainRe);
Mult=immultiply(celRe, brainRe);
Div=imdivide(celRe, brainRe);
Sub=imsubtract(celRe, brainRe);
Add1=imadd(celRe, 100);
Mult1=immultiply(celRe, 0);
Div1=imdivide(celRe, 100);
Sub1=imsubtract(celRe, 100);
subplot(2,2,1); imshow(Add,[]); title('Addition');
subplot(2,2,2); imshow(Mult,[]); title('Multiplication');
subplot(2,2,3); imshow(Div,[]); title('Division');
subplot(2,2,4); imshow(Sub,[]); title('Soustraction');
Affichage :
VI- chantillonnage et quantification :
1- chantillonnage :
a-
L chantillonnage est une modification des dimensions ou de la r solution d'une image qui
provoquera un changement dans le nombre de pixels qu'elle contient.
On trouve ainsi le sous chantillonnage qui consiste r duire le nombre de pixels qui composent notre
image do la r duction de sa dimension ce qui affecte dans les 2 cas (respectivement sur
chantillonnage qui permet lagrandissement de la taille de limage), la qualit de celle-ci.
Lextrait du code suivant montre une fonction qui prend en param tre une image quelconque et le
facteur de sous chantillonnage et retourne limage sous chantillonn e :
function sous(im, a)
=size(im);
for i=1:round(m/a)
for j=1:round(n/a)
y(i,j)=im(ai-1,aj-1);
end
end
Publicité
figure; subimage(y); title('image sous chantillonn e ');
end
Affichage :
pour a=2
b- Sous chantillonnage en utilisant les fonctionnalit s de matlab avec le m me facteur :
synthetique=imread('synthetique.tif');
synSous=synthetique(1:2:end, 1:2:end);
subplot(2,2,4); subimage(synSous); title('synthetique sous chantillonn e');
Affichage :
c- Sous chantillonnage des images synthetique.tif et boat.tif par la fonction sous:
en utilisant la m me fonction sur ces 2 images par le facteur 2 on obtient laffichage suivant :
d- Sous chantillonnage de limage synthetique,tif par diff rents facteurs (4, 8 et 16) :
La m me fonction donne comme r sultat daffichage :
k=4
k=8
k=16
On observe que plus le facteur de sous chantillonnage augmente la qualit de limage devient moins
importante et moins nette cet effet est du la r duction du nombre de pixels formant limage do la
perte des informations de celle-ci.
2- Quantification :
a-La fonction peut tre d crite de cette fa on :
function niveau(im, n)
d=256/n; %le pas de quantification parmi 256 niveau de gris
W=uint8(floor(double(im)/d)*d);
subplot(1,2,1); subimage(im); title('Image Originale');
subplot(1,2,2); subimage(W); title('Image quantifi e');
end
b- application de la fonction sur limage cell.tif pour diff rentes pas de quantification :
pas=128 :
pas= 64 :
pas=32
pas =16
pas=8
pas=4
pas=2
c- Dapr s les r sultats de quantification obtenus on remarque que cette technique permet la
d gradation de limage(qui devient moins nette chaque fois on diminue le nombre de niveaux de gris
pour coder limage) ce qui permet un gain en nombre de bits pour coder cette image, cette technique
aide galement la compression des images.