導航:首頁 > 源碼編譯 > 圖像聚類演算法

圖像聚類演算法

發布時間:2022-01-17 05:08:28

① k-means聚類演算法怎麼提取圖像特徵

一,K-Means聚類演算法原理
k-means 演算法接受參數 k
;然後將事先輸入的n個數據對象劃分為
k個聚類以便使得所獲得的聚類滿足:同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小。聚類相似度是利用各聚類中對象的均值所獲得一個「中心對
象」(引力中心)來進行計算的。
K-means演算法是最為經典的基於劃分的聚類方法,是十大經典數據挖掘演算法之一。K-means演算法的基本思想是:以空間中k個點為中心進行聚類,對最靠近他們的對象歸類。通過迭代的方法,逐次更新各聚類中心的值,直至得到最好的聚類結果。
假設要把樣本集分為c個類別,演算法描述如下:
(1)適當選擇c個類的初始中心;
(2)在第k次迭代中,對任意一個樣本,求其到c個中心的距離,將該樣本歸到距離最短的中心所在的類;
(3)利用均值等方法更新該類的中心值;
(4)對於所有的c個聚類中心,如果利用(2)(3)的迭代法更新後,值保持不變,則迭代結束,否則繼續迭代。
該演算法的最大優勢在於簡潔和快速。演算法的關鍵在於初始中心的選擇和距離公式。

② 如何判斷聚類演算法圖像分割結果的質量,在K-means和FCM 演算法下

理論上就看聚類結果的標准差就可以,其實如果自己做實驗的話,用人眼看就行了。

③ 空間聚類演算法能不能用於圖像分割

空間與圖像是再自然不過的類似數據,尤其灰度圖,(x, y, g) 構成三維空間(g(x,y)是像素灰度),彩色圖只是多了二維,比如 (x, y, r, g, b) ,當然通常不用 RGB 屬性來分類。但是分割本身不是一個簡單概念。

④ 給你一幅圖像如何用模糊C均值聚類分析演算法來對其進行分類,希望能給出具體的框架流程

http://www.swarmagents.cn/thesis/detail.asp?id=64

⑤ 網上的一些matlab程序聚類演算法程序中為什麼沒有輸入、輸出圖像的步驟

聚類不一定是要對圖像進行操作的,一般如果用於圖像都是先提取目標的特徵或其他信息再使用聚類演算法。可能你下的matlab聚類演算法輸入和輸出是已經提取特徵完畢的矩陣,你可以check一下是否是用矩陣輸入的特徵來聚類的

⑥ 求教用MATLAB將圖像聚類方法

最簡單的就是用k-means~~~~

⑦ matlab圖像聚類分割演算法 求大神告知以下代碼是用了什麼方法還有怎麼把圖像分割和聚類演算法結合在一起。

用了K均值聚類演算法,即求特徵點到兩個聚類中心的距離,哪個小就將他歸於哪一類中,即D1和D2

⑧ 我正在做用遺傳演算法的圖像聚類 IM=imread('2.jpg');%讀入圖像 IM=IM(:,:,1); 第二行代碼是什麼意思啊

IM讀入的圖像,應該是RGB圖像
IM(:,:,1)表示只取IM的R值,IM(:,:,2)就表示取IM的G值,類推到B

⑨ 聚類的圖像分割演算法

《C語言數值演算法程序大全》第二版,定價88元,樓主掏點金子吧,我手頭有一本,不過你看不著。

⑩ 誰有matlab模糊聚類演算法進行圖像分割的源程序啊

%%%%%%%%%%%%%%%模糊聚類%%%%%%%%%%%%%%%%%%%%%%%
clear;
loadF:\從0開始\數據\data.txt;
INPUTDATA=data;
%--------原始數據標准化-------%
disp('請選擇原始數據標准化方式:');
disp('<1-總和標准化|2-標准差標准化|3-極大值標准化|4-極差標准化>');
wayforstand=input('請輸入:');
switchwayforstand
case1,
DATAFORCLUS=standard_use_sum(INPUTDATA);
case2,
DATAFORCLUS=standard_use_std(INPUTDATA);
case3,
DATAFORCLUS=standard_use_max(INPUTDATA);
case4,
DATAFORCLUS=standard_use_jc(INPUTDATA);
otherwise
error('您的輸入不符合要求->執行結束!!!');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%基於模糊等價關系的模糊聚類%%%%%%%%%%%%%%%%%%%%%%
%----------構造相似關系-----------%
numrows=size(DATAFORCLUS,1);
numcols=size(DATAFORCLUS,2);
disp('請選擇對象之間相似性統計量的方式:');
disp('<1-相關系數法|2-夾角餘弦法|3-指數相似系數法|4-絕對值指數法|5-算術平均最小法|6-最大最小值法|7-絕對值差數法|8-數量積法>');
wayforr_ij=input('請輸入:');
switchwayforr_ij
case1,%-----------------------------------相關系數法
fori=1:numrows,
forj=1:numrows,
meani=mean(DATAFORCLUS(i,:));meanj=mean(DATAFORCLUS(j,:));
simiR(i,j)=sum((DATAFORCLUS(i,:)-meani).*(DATAFORCLUS(j,:)-meanj))/...
(sqrt(sum((DATAFORCLUS(i,:)-meani).^2))*sqrt(sum((DATAFORCLUS(j,:)-meanj).^2)));
end
end
case2,%-----------------------------------夾角餘弦法
fori=1:numrows,
forj=1:numrows,
simiR(i,j)=sum(DATAFORCLUS(i,:).*DATAFORCLUS(j,:))/...
(sqrt(sum(DATAFORCLUS(i,:).*DATAFORCLUS(i,:)))*sqrt(sum(DATAFORCLUS(j,:).*DATAFORCLUS(j,:))));
end
end
case3,%-----------------------------------指數相似系數法
case4,%-----------------------------------絕對值指數法
case5,%-----------------------------------算術平均最小法
case6,%-----------------------------------最大最小值法
case7,%-----------------------------------絕對值差數法
case8,%-----------------------------------數量積法
otherwise
error('您的輸入不符合要求->執行結束!!!');
end
%-------改造成等價關系----------%
sign=0;
numselfmul=1;
simiRk=eye(numrows);
equi_tem=simiR;
whilesign==0,
fori=1:numrows,
forj=1:numrows,
forc=1:numrows,
rij_temp(c)=min([equi_tem(i,c)equi_tem(c,j)]);
end
simiRk(i,j)=max(rij_temp);
end
end
%--------------%
ifsum(sum(simiRk-equi_tem,1))~=0,
numselfmul=numselfmul+1;
equi_tem=simiRk;
else
sign=1;
break
end
%--------------%
end
ifsign==1,
disp('從相似矩陣到等價矩陣改造成功!!!');
else
disp('從相似矩陣到等價矩陣改造失敗!!!');
end
equiR=simiRk;
numclass=input('請輸入聚類數:');
%---------在不同的截集水平進行聚類--------------%
clasc=0;
comp_vec(1,1:numrows)=0;
index=0;
clasc=0;
tip=0;
alpha=0;
temnumeachclass=0;
while(tip==0),
%alpha=input('請輸入進行分類的截集水平λ:');
%alpha=0.5;%調試
if(alpha<0||alpha>1),
error('您輸入的截集水平λ不符合分類要求->執行結束!!!');
end
comp_arr=ones(numrows)*alpha;
result_arr=(equiR>=comp_arr);%--------------------result_arr判斷矩陣
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%撿菜演算法
fori=1:numrows,
ifsum(comp_vec(1,:)==result_arr(i,:))<numrows,%-----------說明沒有歸類
temnumeachclass=0;
%numeachclass(clasc)=index-temnumeachclass;
temsave=result_arr(i,:);
forj=1:numrows,
ifsum(result_arr(j,:)==temsave)==numrows,
index=index+1;
class(index)=j;
result_arr(j,:)=0;%--------------------說明已經被歸類
temnumeachclass=temnumeachclass+1;
end
end
clasc=clasc+1;
nec(clasc)=temnumeachclass;
else
continue;
end
end
ifclasc>=numclass,
tip=1;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%當模糊分類的數目小於等於所給出的類數時退出循環體
disp('成功!!!');
else
clearclass;
clearnumeachclass;
clearnec;
clasc=0;
index=0;
temnumeachclass=0;
alpha=alpha+0.01;
end
end
%----取聚類結果----%
num=0;
n=0;
fori=1:clasc,
forj=1:nec(i),
num=num+1;
n=n+1;
CLUS(n,:)=INPUTDATA(class(num),:);
end
n=n+1;
CLUS(n,:)=inf;
end
%formatsingle(CLUS)
lenexport=size(CLUS,1);
fori=1:lenexport,
RESULT(i,:)=sprintf('%15.2f',CLUS(i,:));
end
RESULT

閱讀全文

與圖像聚類演算法相關的資料

熱點內容
工作三年的大專程序員 瀏覽:728
java畢業設計文獻 瀏覽:143
籌碼集中度指標源碼 瀏覽:482
listsortjava 瀏覽:186
plc閃光電路編程實例 瀏覽:299
socket編程試題 瀏覽:206
華為的伺服器怎麼設置從光碟機啟動 瀏覽:871
程序員真的累嗎 瀏覽:328
學信網app為什麼刷臉不了 瀏覽:874
天蠍vs程序員 瀏覽:996
單片機下載口叫什麼 瀏覽:190
程序員的道 瀏覽:926
雲伺服器不實名違法嗎 瀏覽:558
怎樣查看文件夾圖片是否重復 瀏覽:995
文件怎麼導成pdf文件 瀏覽:808
打開sql表的命令 瀏覽:103
安卓手機如何面部支付 瀏覽:38
天元數學app為什麼登錄不上去 瀏覽:825
明日之後為什麼有些伺服器是四個字 瀏覽:104
安卓系統l1是什麼意思 瀏覽:26