資源簡介
在經典模糊C均值算法的基礎上,用五種方法改進方法同時實現不同圖形的分割,并且也附帶硬C均值算法的實現。

代碼片段和文件信息
clcclear?all;
%function?[IX2]=enfcm(IM);
%IM是輸入的源圖像
%IX2是分類結果
IM=imread(‘001.jpg‘);
figure(1)
%subplot(221)imshow(uint8(IM))title(‘原始圖像‘);
IM=IM(::1);
%subplot(222)imshow(uint8(IM))title(‘灰度圖像‘);
[maxXmaxY]=size(IM);%圖像大小
%IM?=?imnoise(IM‘salt?&?pepper‘0.02);
%IM=imnoise(IM‘gaussian‘00.002);
IM=double(IM);
a=[111;101;111];
im=1/2.8?*(0.125*?filter2(aIM)+IM);%參數a=0.5
%subplot(223)imshow(uint8(im))title(‘變換圖像‘);
IMM=cat(3imimim);
%初始化聚類中心(3類)
ttFcm=0;%聚類次數,最多15次
cc1=8;
cc2=120;
cc3=200;
while(ttFcm<15);
????ttFcm=ttFcm+1;
????c1=cc1*ones(maxXmaxY);
????c2=cc2*ones(maxXmaxY);
????c3=cc3*ones(maxXmaxY);
????c=cat(3c1c2c3);
????
??ree=repmat(0.00001maxXmaxY);
????ree1=cat(3reereeree);
????distance=IMM-c;
????distance=distance.*distance+ree1;
??
????%計算隸屬度u
????????distance1=double(?distance(::1)+distance(::2)+distance(::3));
????????u1=distance(::1)./distance1;
????????u2=distance(::2)./distance1;??
????????u3=distance(::3)./distance1;
????????
????%計算聚類中心c
????????r=zeros(1256);?%創建一個全零矩陣,1×256,計算各灰度出現的次數??
?????for?i=1:256??;
????????r(i)=length(find(im?==?(i-1)));??
?????end
?????
????????im=uint8(im);
????????uu1=zeros(1256);
????????uu2=zeros(1256);
????????uu3=zeros(1256);
?????for?m=1:1:maxX*maxY;
????????uu1(im(m)+1)=u1(m)?;??
????????uu2(im(m)+1)=u2(m)?;
????????uu3(im(m)+1)=u3(m);?
????end
????????x=1:1:256;?
???????ccc1=double(sum(r.*x.*uu1.*uu1)/sum(r.*uu1.*uu1));
???????ccc2=double(sum(r.*x.*uu2.*uu2)/sum(r.*uu2.*uu2));
???????ccc3=double(sum(r.*x.*uu3.*uu3)/sum(r.*uu3.*uu3));
???????
???????abs1=abs(cc1-ccc1)/cc1;
???????abs2=abs(cc2-ccc2)/cc2;
???????abs3=abs(cc3-ccc3)/cc3;
???????
???????tmpMatrix=[abs1abs2abs3];
???????
??????pp=cat(3u1u2u3);
?????
???????for?i=1:maxX;
????????????for?j=1:maxY;
????????????????max1=max([pp(ij1)pp(ij2)pp(ij3)]);
????????????????if?max(max1)==u1(ij)
????????????????????IX2(ij)=1;
????????????????elseif?max(max1)==u2(ij)
????????????????????IX2(ij)=2;
????????????????else
????????????????????IX2(ij)=3;
????????????????end
????????????end
????????end
?????%判結束條件
????????if?max(tmpMatrix)<0.000000001
????????????break;
????????else
????????????cc1=ccc1;
????????????cc2=ccc2;
????????????cc3=ccc3;
????????end
????????
?????for?i=1:maxX;
????????????for?j=1:maxY;
????????????????if?IX2(ij)==3
????????????????????IMMM(ij)=20;
????????????????elseif?IX2(ij)==2
????????????????????IMMM(ij)=255;
????????????????else
????????????????????IMMM(ij)=255;
????????????????end
????????????end
??????end
????????
end
????for?i=1:maxX;
????????????for?j=1:maxY;
????????????????if?IX2(ij)==3
????????????????????IMMM(ij)=20;
????????????????elseif?IX2(ij)==2
????????????????????IMMM(ij)=255;
????????????????else
????????????????????IMMM(ij)=255;
????????????????end
????????????end
????end
????????
%顯示最終分類結果
IMMM=uin
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????32633??2011-08-13?20:43??基于FCM的圖像分割???MATLAB\001.jpg
?????文件?????121078??2006-04-13?10:43??基于FCM的圖像分割???MATLAB\002.bmp
?????文件??????25778??2011-08-21?08:30??基于FCM的圖像分割???MATLAB\003.jpg
?????文件??????38519??2011-08-20?23:20??基于FCM的圖像分割???MATLAB\004.jpg
?????文件??????13745??2002-04-05?10:06??基于FCM的圖像分割???MATLAB\005.jpg
?????文件??????99382??2003-08-03?03:32??基于FCM的圖像分割???MATLAB\006.bmp
?????文件??????83794??2011-03-10?12:26??基于FCM的圖像分割???MATLAB\007.jpg
?????文件??????44607??2003-01-26?01:03??基于FCM的圖像分割???MATLAB\008.png
?????文件???????2763??2011-08-18?13:39??基于FCM的圖像分割???MATLAB\009.jpg
?????文件???????8183??2011-08-18?13:47??基于FCM的圖像分割???MATLAB\010.jpg
?????文件?????263222??2011-06-21?23:41??基于FCM的圖像分割???MATLAB\012.bmp
?????文件???????3689??2011-06-20?17:51??基于FCM的圖像分割???MATLAB\014.jpg
?????文件??????19694??2002-04-29?14:24??基于FCM的圖像分割???MATLAB\015.jpg
?????文件??????10950??2002-05-07?07:48??基于FCM的圖像分割???MATLAB\017.jpg
?????文件???????5199??2011-08-18?13:39??基于FCM的圖像分割???MATLAB\018.jpg
?????文件??????22612??2002-05-17?09:26??基于FCM的圖像分割???MATLAB\019.jpg
?????文件??????61141??2011-08-21?08:30??基于FCM的圖像分割???MATLAB\020.jpg
?????文件??????69432??2003-08-08?16:44??基于FCM的圖像分割???MATLAB\021.tif
?????文件???????3156??2011-08-21?11:40??基于FCM的圖像分割???MATLAB\enfcm.asv
?????文件???????3157??2011-08-22?13:08??基于FCM的圖像分割???MATLAB\enfcm.m
?????文件???????2576??2011-08-21?10:05??基于FCM的圖像分割???MATLAB\fcm3.asv
?????文件???????2576??2011-08-22?12:37??基于FCM的圖像分割???MATLAB\fcm3.m
?????文件???????2824??2011-08-21?11:40??基于FCM的圖像分割???MATLAB\fcms1.asv
?????文件???????2821??2011-08-22?13:00??基于FCM的圖像分割???MATLAB\fcms1.m
?????文件???????2800??2011-08-21?11:40??基于FCM的圖像分割???MATLAB\fcms2.asv
?????文件???????2797??2011-08-22?13:01??基于FCM的圖像分割???MATLAB\fcms2.m
?????文件???????2792??2011-08-21?11:40??基于FCM的圖像分割???MATLAB\fcm_s.asv
?????文件???????2789??2011-08-22?12:57??基于FCM的圖像分割???MATLAB\fcm_s.m
?????文件???????3189??2011-08-21?10:05??基于FCM的圖像分割???MATLAB\flicm1.asv
?????文件???????3189??2011-08-22?13:08??基于FCM的圖像分割???MATLAB\flicm1.m
............此處省略7個文件信息
評論
共有 條評論