Compte rendu TP1 - Initiation au ToolBox Image Processing de Matlab

Page 1 sur 18Lecteur de document UniversityLib

Compte rendu TP1 - Initiation au ToolBox Image Processing de Matlab

Image Processing · lab

Voir tous les documents en programmation

Compte rendu TP1

R alis par:

BEN ABDALLAH Nahla

II3-II

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');

Affichage :

4- Affichage des 3 composantes de limage autumn,tif :

Commandes matlab :

%Selection de la composante rouge:

autumn=imread('autumn.tif');

Publicité

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 :

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);

Publicité

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 :

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);

Publicité

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

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

Publicité

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.

f- Sur chantillonnage par un facteur de 2 :

le sur chantillonnage va augmenter la dimension de notre image, on va essayer de dupliquer les

pixels de limage par un facteur de 2 cest- -dire chaque pixel de limage originale va se dupliquer en

4 autres pixels, la fonction suivante montre le sur chantillonnage de limage WTC,tif par un facteur

de 2 :

function surechant(im)

=size(im);

%2*N le facteur=2, doubler la taille de l'image

wtcDouble=zeros(2N,2N);

wtcDouble(1:2:2N,1:2:2N)=im;

wtcDouble(1:2:2N,2:2:2N)=im;

wtcDouble(2:2:2N,1:2:2N)=im;

wtcDouble(2:2:2N,2:2:2N)=im;

figure,colormap(gray),imagesc(im); title('image originale');

figure,colormap(gray),imagesc(wtcDouble); title('image sur chantillonn e');

end

Affichage :

On remarque que le sur chantillonnage ne r duit pas pratiquement la qualit de limage originale

comme le cas du sous chantillonnage.

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.