img= imread('tiger.jpg'); [col,row]=meshgrid(1:size(img,2),1:size(img,1)); imgVec=[reshape(img(:,:,1),[],1) reshape(img(:,:,2),[],1) reshape(img(:,:,3),[],1) row(:) col(:)]; [imgVecQ,imgVecC]=kmeans(double(imgVec),15); imgVecQK=pdist2(double(imgVec(:,1:3)),double(imgVecC(:,1:3))); [aa,indMin]=min(imgVecQK,[],2); imgVecNewQ=imgVecC(indMin,1:3); %quantizing imgNewQ=img; imgNewQ(:,:,1)=reshape(imgVecNewQ(:,1),size(img(:,:,1))); imgNewQ(:,:,2)=reshape(imgVecNewQ(:,2),size(img(:,:,1))); imgNewQ(:,:,3)=reshape(imgVecNewQ(:,3),size(img(:,:,1))); imshow(img) figure,imshow(imgNewQ,[]);