CoursDocuments

Matlab Travaux Pratique (TP1) : Initiation au ToolBox Image Processing

Rmiza Nahla Module : Atelier T.A.I Classe: II3-II 

Compte rendu TP1: 

Initiation au ToolBox Image Processing de Matlab 

III- Lecture, affichage et sauvegarde d’une image : 1-Commandes matlab : 

autumn=imread(‘autumn.tif’); [forest,map]=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 d’images supporté par matlab, Autumn.tif est de type couleur RGB, l’image Cell.tif est une image d’intensité c’est-à-dire à niveau de gris, puis nous avons l’image forest,tif qui est aussi une image couleur mais indexée, et l’image 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) d’où la taille de l’image x3 cette dernière est codée sur 8 bits(uint8), de même pour l’image cell mais elle ne possède qu’une seule canal puisqu’elle s’agit d’une image à niveau de gris, le type de l’image text.png est binaire d’où la classe logical. Chaque type d’image a comme caractéristiques ses propres dimensions. 

3- Création d’une 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 l’image ‘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 l’espace de couleur RVB i l existe aussi d’autres espaces, dans cette exemple nous prenons l’espace ‘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 l’intensité 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’ : L’inversion consiste à inverser les couleurs dans l’image 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 l’image originale devient noir dans la nouvelle image. 

7- Transformation d’une même image dans d’autres types d’images : 

On peut convertir une image comme ‘autumn.tif’ en d’autres types d’images comme le type binaire, indexé, niveau de gris. Le code matlab suivant illustre la conversion d’une image donnée en différents types d’images : 

autumnBinaire=im2bw(autumn); [autumnIndex,map]= 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 l’image ‘forest.tif’ : 

Commandes matlab : 

[forestx,map1]=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 d’images : 

1- extraction d’un carré de l’image ‘cell.tif’ contenant une cellule : 

Commandes matlab : cellCarre=cell(20:95 , 50:135); figure imshow(cellCarre); 

Affichage : 

2- Agrandissement de l’image 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 l’image ‘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 d’où la réduction de sa dimension ce qui affecte dans les 2 cas (respectivement sur échantillonnage qui permet l’agrandissement de la taille de l’image), la qualité de celle-ci. L’extrait du code suivant montre une fonction qui prend en paramètre une image quelconque et le facteur de sous échantillonnage et retourne l’image sous échantillonnée : 

function sous(im, a) [m,n]=size(im); for i=1:round(m/a) 

for j=1:round(n/a) 

y(i,j)=im(a*i-1,a*j-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 l’affichage suivant : 

d- Sous échantillonnage de l’image ‘synthetique,tif’ par différents facteurs (4, 8 et 16) : La même fonction donne comme résultat d’affichage : 

k=4 

k=8 

k=16 

On observe que plus le facteur de sous échantillonnage augmente la qualité de l’image devient moins importante et moins nette cet effet est du à la réduction du nombre de pixels formant l’image d’où 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 l’image ’cell.tif’ pour différentes pas de quantification : 

pas=128 : 

pas= 64 : 

pas=32 

pas =16 

pas=8 

pas=4 

pas=2 

c- D’après les résultats de quantification obtenus on remarque que cette technique permet la dégradation de l’image(qui devient moins nette chaque fois on diminue le nombre de niveaux de gris pour coder l’image) ce qui permet un gain en nombre de bits pour coder cette image, cette technique aide également à la compression des images. 

 

télécharger gratuitement Matlab Travaux Pratique (TP1)

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Bouton retour en haut de la page

Adblock détecté

S'il vous plaît envisager de nous soutenir en désactivant votre bloqueur de publicité