Matlab 2015a örneğinde olduğu gibi, kmean kümeleme kullanarak renkleri nasıl segmentlere ayıracağımı öğreniyorum. Ama kodları her çalıştırdığımda, istediğim renkler farklı kümeler halinde. Örneğin, ilk çalıştırma için, sarı kümenin 1 ve mavi kümenin 2 olduğunu gösterir. Tekrar çalıştırdığımda, farklı kümelere geçerler. Tekrar ve tekrar çalıştırsam bile sarı ve mavi, belirli kümelerde nasıl yapılır? Lütfen bana yardım et. Benim durumda kmean renk segmentasyonu neden her seferinde farklı renk gösteriyor?
[FileName,PathName] = uigetfile('*.jpg','Select the MATLAB code file');
he1= imread(FileName);
cform = makecform('srgb2lab');
lab_he = applycform(he1,cform);
figure (2)
imshow (lab_he)
ab = double(lab_he(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
nColors = 3;
% repeat the clustering 3 times to avoid local minima
[cluster_idx, cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ...
'Replicates',3);
pixel_labels = reshape(cluster_idx,nrows,ncols);
figure (3)
imshow(pixel_labels,[]), title('image labeled by cluster index');
segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 1 3]);
for k = 1:nColors
color = he1;
color(rgb_label ~= k) = 0;
segmented_images{k} = color;
end
%%
figure (4)
imshow(segmented_images{1}), title('objects in cluster 1');
%%
figure (5)
imshow(segmented_images{2}), title('objects in cluster 2');
%%
figure (6)
imshow(segmented_images{3}), title('objects in cluster 3');
%%
a = im2bw (segmented_images{2},0.05);
figure (7)
imshow (a);
b = im2bw (segmented_images{3},0.05);
figure (8)
imshow (b);
, sarı renk ile bölge kümede 2 olmalıdır ve göstermek Lütfen mavi bölge ile bölge kümede 3. olmalıdır: Şimdiden teşekkürler
Bu i kullanmak kodudur ben nasıl yapmalıyım
Üzgünüm efendim, bunun nasıl çalıştığını bana açıklar mısınız? –
@badrulhisham Cevabınızı – Suever
daha net hale getirme umuduyla güncelledim, yardımınız için çok teşekkür ederim efendim, ben bunları rahatsız etmek için özür dilerim kodumu –