Diff of /Code/kmeans.m [000000] .. [c28c68]

Switch to unified view

a b/Code/kmeans.m
1
function [k, class, img_vect] = kmeans(img, k);
2
3
img = double(img);
4
img = imresize(img, [256,256]);
5
img_vect = img(:);
6
centroid = zeros(k,1);
7
class = zeros(length(img_vect), k);
8
%initialize centroid
9
maximum = max(img_vect);
10
for cent = 1:k
11
    centroid(cent,1)= cent * maximum / k;
12
end
13
iter = 0;
14
while(iter<10)
15
    class(1:length(img_vect),1:k) = 0;
16
    % classifying pixels
17
    for i = 1: length(img_vect)
18
        [val, ind]=min(abs(img_vect(i) - centroid((1:k),1)));
19
        class(i,ind)= img_vect(i);
20
    end
21
    % updating centroid
22
    for cent = 1:k
23
        centroid(cent, 1)= sum(class(:,cent))/length(find(class(:,cent)));
24
    end
25
26
    iter = iter +1; 
27
end
28
29
%figure;imshow(img,[]),title('original');
30
% for clust = 1:k
31
%     cluster = reshape(class(1:length(img_vect),clust:clust), [256,256] );
32
%     figure; imshow(cluster,[]),title('cluster');
33
% end
34