kclassify.m

来自「利用matlab实现彩色图像的分割。算法主要是利用聚类算法。」· M 代码 · 共 45 行

M
45
字号
function groups = kclassify(samples, means)% KCLASSIFY Classification based on k-means (no dependence on dimension)%%  Samples: A matrix with rows containing sample vectors%  Means: A matrix with C rows, each of which is a group mean.  % First, compute the distances of each sample from each of the% means.    numPixels = length(samples(:,1));  numGroups = size(means,1);  groups = zeros(numPixels,1);    tic  for i=1:numPixels            % #1      %[jive, groups(i)] = min(distances(samples(i,:), means));            % #2  11s for K=1000      vm = repmat(samples(i,:), numGroups, 1);           dists = sum((vm - means).^2, 2);      % #3      %dists = zeros(numGroups,1);      %for j=1:numGroups      %    dists(j) = sum((samples(i,:)-means(j,:)).^2);      %end      % #4  %       str='dists=[ ';%       for j=1:length(means(:,1))%           str = strcat(str,sprintf('sum((samples(%d,:)-means(%d,:)).^2), ',i,j));%       end%       str = strcat(str,'];');%       eval(str);            [dontcare, groups(i)] = min(dists);        end  toc      

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?