2
%CODE TO DEMONSTRATE SEGMENTATION USING KMEANS clc clear all II=imread('test3.jpg') ; %read image isRGB=1; % ( =1 ) If wnat to work with RGB value else with LAB values I=imresize(II,.25); %Resize the image cform = makecform('srgb2lab'); lab_he = applycform(I,cform); [rr cc bbb]=size(I) data=[]; l=1; for i=1:rr  for j=1:cc  if isRGB  data(l,:)=I(i,j,1:3);  else  data(l,:)=lab_he(i,j,2:3);  end  %data(l,2)=I(i,j,2);  %data(l,3)=I(i,j,3);  l=l+1;  end end whos data cluster_n=3; %Number of clusters IDX = kmeans(data,cluster_n); whos IDX %Keep r1,c1 for cluster 1; r2,c2 for cluster 2 and so on l=1; r1=[]; c1=[]; r2=[]; c2=[]; r3=[]; c3=[]; while(l<=size(data,1))  if(IDX(l)==1)%Cluster 1  rval=floor(l/cc)+1;  cval=mod(l,cc);  r1=[r1 rval];  c1=[c1 cval];  if cval==0  rval=rval-1;  r1=[r1 rval];  c1=[c1 cc];  end  end  if(IDX(l)==2)%Cluster 2  rval=floor(l/cc)+1;

k Means Code

Embed Size (px)

Citation preview

8/13/2019 k Means Code

http://slidepdf.com/reader/full/k-means-code 1/2

%CODE TO DEMONSTRATE SEGMENTATION USING KMEANSclcclear all

II=imread('test3.jpg'); %read image

isRGB=1; % ( =1 ) If wnat to work with RGB value else with LAB values

I=imresize(II,.25); %Resize the imagecform = makecform('srgb2lab');lab_he = applycform(I,cform);[rr cc bbb]=size(I)data=[];l=1;for i=1:rr  for j=1:cc  if isRGB  data(l,:)=I(i,j,1:3);  else  data(l,:)=lab_he(i,j,2:3);  end  %data(l,2)=I(i,j,2);  %data(l,3)=I(i,j,3);

  l=l+1;  endend

whos data

cluster_n=3; %Number of clusters

IDX = kmeans(data,cluster_n);whos IDX

%Keep r1,c1 for cluster 1; r2,c2 for cluster 2 and so on

l=1;r1=[];c1=[];r2=[];c2=[];r3=[];c3=[];while(l<=size(data,1))  if(IDX(l)==1)%Cluster 1  rval=floor(l/cc)+1;  cval=mod(l,cc); 

r1=[r1 rval];

  c1=[c1 cval];  if cval==0  rval=rval-1;  r1=[r1 rval];  c1=[c1 cc];  end  end 

if(IDX(l)==2)%Cluster 2  rval=floor(l/cc)+1;

8/13/2019 k Means Code

http://slidepdf.com/reader/full/k-means-code 2/2

  cval=mod(l,cc); 

r2=[r2 rval];  c2=[c2 cval];  if cval==0  rval=rval-1;  r2=[r2 rval];  c2=[c2 cc];  end  end 

if(IDX(l)==3)%Cluster 3  rval=floor(l/cc)+1;  cval=mod(l,cc); 

r3=[r3 rval];  c3=[c3 cval];  if cval==0  rval=rval-1;  r3=[r3 rval];  c3=[c3 cc];  end  end 

% if(IDX(l)==4)%Cluster 4% rval=floor(l/cc)+1;% cval=mod(l,cc);%% r4=[r4 rval];% c4=[c4 cval];% if cval==0% rval=rval-1% r4=[r4 rval];% c4=[c4 cc];% end% end

  l=l+1; end

figure,imshow(I),title('test3.jpg')hold online(c1, r1, 'linestyle', 'none','marker', '.', 'color', 'g');%Display cluater 1line(c2, r2, 'linestyle', 'none','marker', '*', 'color', 'r');%Display cluster 2line(c3, r3, 'linestyle', 'none','marker', '*', 'color', 'b');%Display cluster 3% line(c4, r4, 'linestyle', 'none','marker', '*', 'color', 'k');%Display cluster 4hold off

figure,imshow(I)