fcm方法進行圖像分割源程序.doc

fcm方法進行圖像分割源程序.doc

ID:52564736

大?。?8.50 KB

頁數(shù):4頁

時間:2020-03-28

fcm方法進行圖像分割源程序.doc_第1頁
fcm方法進行圖像分割源程序.doc_第2頁
fcm方法進行圖像分割源程序.doc_第3頁
fcm方法進行圖像分割源程序.doc_第4頁
資源描述:

《fcm方法進行圖像分割源程序.doc》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫

1、1.myfcm函數(shù)function[center,U,obj_fcn]=myfcm(data,cluster_n,options)%data為聚類數(shù)據(jù),cluster_n為類別數(shù)%判斷函數(shù)參數(shù)個數(shù)ifnargin~=2&nargin~=3,error('參數(shù)太多或太少');enddata_n=size(data,1);%data第一維大小in_n=size(data,2);%data第二維大小%可以改變下列數(shù)據(jù)設置默認的options參數(shù)default_options=[2;%FCM中的參數(shù)m100;%最大迭代次數(shù)1e-5;%判別誤差epsonal1];%迭代過程中顯示i

2、fnargin==2,options=default_options;else%如果"options"沒有完全指定,則以default_options中的部分進行補充iflength(options)<4,tmp=default_options;tmp(1:length(options))=options;options=tmp;end%如果options中的一些參數(shù)不是數(shù)字,則以default_options中的代替nan_index=find(isnan(options)==1);%找到options中的非數(shù)字元素下標options(nan_index)=defaul

3、t_options(nan_index);ifoptions(1)<=1error('FCM中參數(shù)m應大于1!');endendexpo=options(1);%expo存放參數(shù)mmax_iter=options(2);%最大迭代次數(shù)min_impro=options(3);%判別誤差display=options(4);%迭代過程是否顯示obj_fcn=zeros(max_iter,1);%obj_fcn為目標函數(shù)值數(shù)組U=myfcminit(cluster_n,data_n);%調(diào)用myfcminit函數(shù)初始化隸屬度矩陣Ufori=1:max_iter[U,cente

4、r,obj_fcn(i)]=myfcmstep(data,U,cluster_n,expo);%調(diào)用myfcmstep函數(shù)進行一次迭代ifdisplay==1fprintf('迭代次數(shù)=%d,obj.fcn=%f',i,obj_fcn(i));end%檢查迭代終止條件ifi>1,ifabs(obj_fcn(i)-obj_fcn(i-1))

5、fcminit(cluster_n,data_n)%%U為隸屬度矩陣,大小為:類別數(shù)*被聚類數(shù)據(jù)元素個數(shù)%參數(shù)cluster_n為聚類類別數(shù)%data_n為被聚類數(shù)據(jù)的元素個數(shù)%U=rand(cluster_n,data_n);%隨機生成隸屬度矩陣Ucol_sum=sum(U);%計算U中每列元素和U=U./col_sum(ones(cluster_n,1),:);%保證U中每列的隸屬度值之和為13.myfcmstep函數(shù)用于聚類過程中的每次迭代function[U_new,center,obj_fcn]=myfcmstep(data,U,cluster_n,expo)%

6、%data為被聚類數(shù)據(jù),U為隸屬度矩陣,cluster_n為聚類類別數(shù),expo為FCM中的參數(shù)m%函數(shù)調(diào)用后得到新的隸屬度矩陣U_new,聚類中心center,目標函數(shù)值obj_fcn%mf=U.^expo;%FMC中的U^mcenter=mf*data./((ones(size(data,2),1)*sum(mf'))');%得到聚類中心dist=myfcmdist(center,data);%調(diào)用myfcmdist函數(shù)計算聚類中心與被聚類數(shù)據(jù)的距離obj_fcn=sum(sum((dist.^2).*mf));%得到目標函數(shù)值tmp=dist.^(-2/(expo-

7、1));%如果迭代次數(shù)不為1,計算新的隸屬度矩陣U_new=tmp./(ones(cluster_n,1)*sum(tmp));%U_new為新的隸屬度矩陣4.myfcmdist函數(shù)用于計算聚類中心與被聚類數(shù)據(jù)的距離functionout=myfcmdist(center,data)%%center為聚類中心,data為被聚類數(shù)據(jù)%out=zeros(size(center,1),size(data,1));ifsize(center,2)>1,%若聚類中心數(shù)據(jù)大于1,即聚類類別>=2fork=1:size(center,1)

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。