% Hue M. - dec 2003 % Demo of K-Means picture segmentation. % % function Im_Out = km (Im_In,k,param1,val1) function res = km(Im,k,param1,val1) % Im : image d'entree, sous forme RGB % k : nombre de classes % param1, val1 : parametres optionnels (cf help kmeans) % H : image de sortie [m,n,p]=size(Im); Ik = zeros(m*n,p); % Conversion matrice -> vecteur for i = 1:m for j = 1:n for l = 1:p Ik(j + (i-1)*n,l) = Im(i,j,l); end end end if nargin == 4 K = kmeans(Ik,k,param1,val1); % kmeans de type " vecteur -> vecteur " else K = kmeans(Ik,k); end H = zeros(m,n,p); % Conversion vecteur -> matrice for i = 1:m for j = 1:n H(i,j,1) = K(j + (i-1)*n)/k; end end res = H;