Vous êtes sur la page 1sur 7

exercice 4 tp 1:

Question 1:

X = multibandread('paris.lan',[512,512,7],'uint8=>uint8',128,'bil','ieee-le');
bande_3 = X(:, :, 3);
imshow(bande_3)

Question 2:

[nl,nc,ncanaux]=size(bande_3)

nl = 512
nc = 512
ncanaux = 1

Question 3:

canal_NIR=X(:,:,4);

1
canal_R=X(:,:,3);
canal_G=X(:,:,2);
image_RGB = cat(3, canal_R, canal_G, canal_NIR);
imshow(image_RGB);
title('Image Composite Red-Green-Blue (CIR)');

Que représente la zone rouge?

La zone rouge dans l'image représente probablement la végétation et d'autres


surfaces qui reflètent fortement dans la bande NIR. Elle est souvent utilisée dans
l'imagerie satellitaire pour l'analyse de la végétation, la détection des changements
environnementaux, etc. Les zones rouges vives peuvent indiquer une végétation saine et
vigoureuse.

tp 3:

2
1 Comparaison des filtres sur des images bruitées
Charger les images:

im_originale = imread('Paris_Gray.jpg');

ans =
Map with properties:

Count: 4
KeyType: char
ValueType: any

im_bruit_sp = imread('Paris_S_P.png');
im_bruit_g = imread('Paris_Gauss.png');

Taille des filtres

taille_filtre_3x3 = [3, 3];


taille_filtre_7x7 = [7, 7];

Appliquer les filtres [3x3]:

filtre_moyenneur_3x3 = ones(taille_filtre_3x3) / prod(taille_filtre_3x3);


im_filtree_sp_moyenneur_3x3 = imfilter(im_bruit_sp, filtre_moyenneur_3x3);
im_filtree_g_moyenneur_3x3 = imfilter(im_bruit_g, filtre_moyenneur_3x3);

im_filtree_sp_median_3x3 = medfilt2(im_bruit_sp, taille_filtre_3x3);


im_filtree_g_median_3x3 = medfilt2(im_bruit_g, taille_filtre_3x3);

sigma = 1.5;
taille_filtre_g_3x3 = 2 * sigma;
im_filtree_sp_g_3x3 = imgaussfilt(im_bruit_sp, taille_filtre_g_3x3);
im_filtree_g_g_3x3 = imgaussfilt(im_bruit_g, taille_filtre_g_3x3);

Calculer l'erreur quadratique moyenne [3x3]:

EQ_sp_moyenneur_3x3 = mean((double(im_originale(:)) -
double(im_filtree_sp_moyenneur_3x3(:)).^2));
EQ_g_moyenneur_3x3 = mean((double(im_originale(:))-
double(im_filtree_g_moyenneur_3x3(:)).^2));
EQ_sp_median_3x3 = mean((double(im_originale(:)) -
double(im_filtree_sp_median_3x3(:)).^2));
EQ_g_median_3x3 = mean((double(im_originale(:)) -
double(im_filtree_g_median_3x3(:)).^2));
EQ_sp_g_3x3 = mean((double(im_originale(:)) - double(im_filtree_sp_g_3x3(:)).^2));
EQ_g_g_3x3 = mean((double(im_originale(:)) - double(im_filtree_g_g_3x3(:)).^2));

Afficher les résultats:

disp('Filtre [3 3] Moyenneur Gaussien Médian');

3
Filtre [3 3] Moyenneur Gaussien Médian

disp('Bruit Sel & Poivre');

Bruit Sel & Poivre

disp([EQ_sp_moyenneur_3x3, EQ_sp_g_3x3, EQ_sp_median_3x3]);

1.0e+03 *

-3.8345 -3.7113 -3.2885

disp('Bruit Gaussian');

Bruit Gaussian

disp([EQ_g_moyenneur_3x3, EQ_g_g_3x3, EQ_g_median_3x3]);

1.0e+03 *

-3.3400 -3.2912 -3.3506

Appliquer les filtres [7x7]:

taille_filtre_7x7 = [7, 7];


filtre_moyenneur_7x7 = ones(taille_filtre_7x7) / prod(taille_filtre_7x7);

im_filtree_sp_moyenneur_7x7 = imfilter(im_bruit_sp, filtre_moyenneur_7x7);


im_filtree_g_moyenneur_7x7 = imfilter(im_bruit_g, filtre_moyenneur_7x7);

im_filtree_sp_median_7x7 = medfilt2(im_bruit_sp, taille_filtre_7x7);


im_filtree_g_median_7x7 = medfilt2(im_bruit_g, taille_filtre_7x7);

Calculer l'erreur quadratique moyenne [7x7]:

EQ_sp_moyenneur_7x7 = mean((double(im_originale(:)) -
double(im_filtree_sp_moyenneur_7x7(:)).^2));
EQ_g_moyenneur_7x7 = mean((double(im_originale(:)) -
double(im_filtree_g_moyenneur_7x7(:)).^2));
EQ_sp_median_7x7 = mean((double(im_originale(:)) -
double(im_filtree_sp_median_7x7(:)).^2));
EQ_g_median_7x7 = mean((double(im_originale(:)) -
double(im_filtree_g_median_7x7(:)).^2));

Afficher les résultats [7x7]:

disp('Filtre [7 7] Moyenneur Gaussien Médian');

Filtre [7 7] Moyenneur Gaussien Médian

disp('Bruit Sel & Poivre');

Bruit Sel & Poivre

4
disp([EQ_sp_moyenneur_7x7, EQ_sp_g_3x3, EQ_sp_median_7x7]);

1.0e+03 *

-3.6884 -3.7113 -3.1888

disp('Bruit Gaussian');

Bruit Gaussian

disp([EQ_g_moyenneur_7x7, EQ_g_g_3x3, EQ_g_median_7x7]);

1.0e+03 *

-3.2658 -3.2912 -3.2475

que constatez-vous?

la taille du filtre affecte généralement la performance du filtrage, avec des filtres plus grands atténuant
davantage le bruit, mais pouvant également entraîner une perte de détails.

2 Détection des fissures des chaussées


Charger l'image originale

im = imread('Cracked.jpg');
imshow('Cracked.jpg')

5
Convertir l'image en niveau de gris si ce n'est pas déjà fait

if size(im, 3) > 1
image_gris = rgb2gray(im);
else
image_gris = im;
end

Appliquer un seuillage pour isoler les fissures

seuil = 100;
image_lisse = medfilt2(image_gris, [3, 3]);
image_segmentee = image_lisse > seuil;

Afficher l'image segmentée

imshow(image_segmentee);
title('Image segmentée des fissures');

Sauvegarder l'image segmentée si nécessaire

imwrite(image_segmentee, 'Resultat.png');

6
7

Vous aimerez peut-être aussi