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
| clear all;
% charger l'image
I=imread('photo2.jpg');
%I=double(I);
figure(1);
imagesc(I);
% appliquée la segmentation tourvée sur ce site
cform = makecform('srgb2lab');
lab_I = applycform(I,cform);
ab = double(lab_I(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
nClusters = 2;
[cluster_idx cluster_center] = kmeans(ab,nClusters,'distance','sqEuclidean',...
'Replicates',2);
pixel_labels = reshape(cluster_idx,nrows,ncols);
%figure(2);imshow(pixel_labels,[]);
segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 1 3]);
for k = 1:nClusters
color = I;
color(rgb_label ~= k) = 0;
segmented_images{k} = color;
end
figure(3);
imshow(segmented_images{1});
%
% % pour avoir une image binaire
[L,C] = size(segmented_images{1});
for i=1:L
for j=1:C
if ((segmented_images{1}(i,j)~= 0))
segmented_images{1}(i,j)=255;
end
end
end
% eliminer les taches
image=imfill(segmented_images{1},'holes');
figure(5);
%imshow(segmented_images{1});
imshow(image); |
Partager