1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| ech2 = imread('echantillon 2 face A selection.tif');
%Ici j'inverse l'image pour travailler directement sur les pixels les plus clairs (tu pourras la ré-inverser tout à la fin). Essaie de comprendre pourquoi j'utilise double et uint8 (il existe peut-être aussi une méthode plus direct).
ech2 = uint8(-(double(ech2)-254));
% Importer une image : file puis import data.
% Visualisation de l'image.
figure; imshow(ech2); title('Image de départ'),
% Définition de l'élément structurant (SE).
SE=strel('square',3);
% L'élément structurant est donc un carré de coté égal à 3.
% Séparation de l'image RGB en ses trois composantes R, G et B.
R=ech2(:,:,1);
G=ech2(:,:,2);
B=ech2(:,:,3);
% Visualisation des trois composantes séparément.
figure; imshow(R); title('Composante rouge');
figure; imshow(G); title('Composante verte');
figure; imshow(B); title('Composante bleue');
% La composante rouge est la 'moins' utilisée car elle est assez sombre, on
% peut en conclure que c'est sur cette image que l'on va seuiller et
% éroder.
% Création d'une image binaire à partir de l'image de la composante rouge
% en teintes de gris.
level=graythresh(R);
bwr=im2bw(R,level);
figure; imshow(bwr); title('Composante rouge binarisée');
% Erosion de l'image binaire.
eror=imerode(bwr,SE);
figure; imshow(eror); title('Erosion de la composante rouge binarisée');
%Enfin on applique le masque obtenue après érosion à l'image rouge. Essaie de bien comprendre ce que fait l'opérateur .*
Imageerode = uint8(eror).*R;
figure,imshow(Imageerode)
%Ensuite pour reconstruire une image rgb, il te suffit de recréer un tableau avec les 3 composantes (j'ai appliqué le masque directement sur les 2 autres composantes :
ech2modif(:,:,1) = Imageerode;
ech2modif(:,:,2) = uint8(eror).*G;
ech2modif(:,:,3) = uint8(eror).*B; |
Partager