这个源码哪里错了啊~我是做的基于FCM的图象分割
帮帮我啊~在某网上下的源码~说是FCM的图象分割~可以分割,灰度图,索引图,彩图可是程序会在报错,在eval那~是不是要在这''',file, '''输入图象的名称啊?不懂啊~
我是菜鸟!
function fcmapp(file, cluster_n)
% FCMAPP
% fcmapp(file, cluter_n) segments a image named file using the algorithm
% FCM.
% [in]
% file: the path of the image to be clustered.
% cluster_n: the number of cluster for FCM.
eval(['info=imfinfo(''',file, ''');']);
switch info.ColorType
case 'truecolor'
eval(['RGB=imread(''',file, ''');']);
% [X, map] = rgb2ind(RGB, 256);
I = rgb2gray(RGB);
clear RGB;
case 'indexed'
eval(['[X, map]=imread(''',file, ''');']);
I = ind2gray(X, map);
clear X;
case 'grayscale'
eval(['I=imread(''',file, ''');']);
end;
I = im2double(I);
filename = file(1 : find(file=='.')-1);
data = reshape(I, numel(I), 1);
tic
[center, U, obj_fcn]=fcm(data, cluster_n);
elapsedtime = toc;
%eval(['save(', filename, int2str(cluster_n),'.mat'', ''center'', ''U'', ''obj_fcn'', ''elapsedtime'');']);
fprintf('elapsedtime = %d', elapsedtime);
maxU=max(U);
temp = sort(center, 'ascend');
for n = 1:cluster_n;
eval(['cluster',int2str(n), '_index = find(U(', int2str(n), ',:) == maxU);']);
index = find(temp == center(n));
switch index
case 1
color_class = 0;
case cluster_n
color_class = 255;
otherwise
color_class = fix(255*(index-1)/(cluster_n-1));
end
eval(['I(cluster',int2str(n), '_index(:))=', int2str(color_class),';']);
end;
filename = file(1:find(file=='.')-1);
I = mat2gray(I);
%eval(['imwrite(I,', filename,'_seg', int2str(cluster_n), '.bmp'');']);
imwrite(I, 'temp\tu2_4.bmp');
imview(I);