【圖像分割】基于DBSCAN算法實(shí)現(xiàn)超像素分割含Matlab源碼
1 簡介
DBSCAN?算法是基于密度的空間數(shù)據(jù)聚類算法,可將密度足夠大的相鄰區(qū)域連接,并可以在排除噪聲干擾的情況下生成任意形狀的簇。該算法通過對數(shù)據(jù)集中每個點(diǎn)進(jìn)行?Eps?鄰域搜索形成簇,如果該點(diǎn)的?Eps?鄰域內(nèi)點(diǎn)的個數(shù)不少于Minpts,則進(jìn)行以該點(diǎn)為核心對象的聚類過程,迭代地聚集從這些核心對象直接密度可達(dá)的對象,并合并密度可達(dá)簇,當(dāng)沒有新的點(diǎn)添加到任何簇時,該過程結(jié)束。下面介紹一下?DBSCAN?算法的幾個重要概念:
(1)Eps?鄰域:給定對象半徑為?Eps?內(nèi)的區(qū)域?yàn)樵搶ο蟮?Eps?鄰域。
(2)核心對象:若給定對象?Eps?鄰域內(nèi)的樣本個數(shù)不小于?Minpts?,該對象為核心對象。
(3)Minpts:核心對象在?Eps?鄰域包含的最小點(diǎn)數(shù)。
(4)直接密度可達(dá):對于樣本集合?D?,若樣本點(diǎn)?q在?p?的?Eps?鄰域內(nèi),p?是核心對象,則?p?對?q?直接密度可達(dá)。

2 部分代碼
A=imread('C:\Users\dell\Desktop\Semantic dataset100\Semantic dataset100\ground-truth\3096.png');
%X=image;
%Y=[0,0;0,0;0,0;9,8];% X1=inv(X)% Y1=inv(Y);
%la=length(X);
[m,n]=size(A);%lb=length(Y);
%[r,k]=size(label);
for i=1:n
? ?%for q=1:k
? ? ? ?for j=1:m
? ? ? ? ? % for p=1:r
? ? ? ?if (A(i,j)&&B(i,j))
? ? ? ? ?z=A(i,j)-label(i,j);
? ? ? ? ?u=abs(z);
? ? ? ? ?z1=+u;
? ? ? % else
? ? ? ? ? % break;
? ? ? ?end
? ? ? ? ? ?%end
? ? ? % end
? ? ? end
end
for i=1:n
? ?for j=1:m ? ?
? ?z2=+A(i,j);
? ?end
end
ue=z1/z2;
3 仿真結(jié)果



4 參考文獻(xiàn)
[1]覃正優(yōu). 基于改進(jìn)超像素和譜聚類的圖像分割算法研究[D]. 廣西師范學(xué)院.
[2]丁倩, 周紹光, 鄧巧,等. 結(jié)合RGB三維直方圖和DBSCAN算法的圖像分割[J]. 計算機(jī)工程與應(yīng)用, 2018, 54(21):7.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
