-
大小: 4.65MB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-09-17
- 語言: Matlab
- 標(biāo)簽: 點(diǎn)云精簡(jiǎn)??高斯映射??Kmeans??meanshift??
資源簡(jiǎn)介
一篇15年文章的復(fù)原,先用kmeans均勻分塊,然后高斯映射,然后meanshift精簡(jiǎn)。其中meanshift是固定閾值的,沒加核函數(shù)。

代碼片段和文件信息
function?[data2clusternumClust]?=?mymeanshift1(dataPtsbandWidth)
%?經(jīng)典無核漂移聚類算法
%perform?MeanShift?Clustering?of?data?using?a?flat?kernel
%
%?---INPUT---
%?dataPts???????????-?input?data?(numDim?x?numPts)
%?bandWidth?????????-?is?bandwidth?parameter?(scalar)
%?plotFlag??????????-?display?output?if?2?or?3?D????(logical)
%?---OUTPUT---
%?clustCent?????????-?is?locations?of?cluster?centers?(numDim?x?numClust)
%?data2cluster??????-?for?every?data?point?which?cluster?it?belongs?to?(numPts)
%?cluster2dataCell??-?for?every?cluster?which?points?are?in?it?(numClust)
%?
%?Bryan?Feldman?02/24/06
%?MeanShift?first?appears?in
%?K.?Funkunaga?and?L.D.?Hosteler?“The?Estimation?of?the?Gradient?of?a
%?Density?Function?with?Applications?in?Pattern?Recognition“
%***?Check?input?****
if?nargin?2
????error(‘輸入?yún)?shù)不足‘);
end
[numDimnumPts]?=?size(dataPts);%[維度,點(diǎn)數(shù)][行數(shù),列數(shù)]
%?初始化
numInitPts?=?numPts;?%初始化的未聚類點(diǎn)數(shù)
Initidx?=?1:numPts;?%初始化的未聚類點(diǎn)索引
clusterVotes?=?zeros(100numPts‘uint16‘);?%初始化的簇投票
beenVisitedFlag?=?zeros(1numPts‘uint8‘);?%判斷循環(huán)中止條件
numClust?=?0;?%初始化的簇總數(shù)
clustCent?=?zeros(numDim100);?%初始化的簇中心
while?numInitPts
????tempInd?=?ceil(?(numInitPts-1e-6)*rand);?%選擇隨機(jī)種子點(diǎn),作為初始聚類中心?%此處可用均勻初值優(yōu)化
????stInd?=?Initidx(tempInd);?%該點(diǎn)在原始數(shù)據(jù)中的索引
????myMean?=?dataPts(:stInd);?%該點(diǎn)坐標(biāo)
????stopThresh?=?1e-3*bandWidth;?%迭代中止的閥值
????thisClusterVotes?=?zeros(1numPts‘uint16‘);?%各點(diǎn)對(duì)該簇的投票統(tǒng)計(jì)
????while?1
????????%計(jì)算均值漂移向量
????????inInds?=?sum((repmat(myMean1numPts)?-?dataPts).^2)?????????thisClusterVotes(inInds)?=?thisClusterVotes(inInds)+1;?%各內(nèi)點(diǎn)為該簇增加一個(gè)投票
????????myOldMean?=?myMean;
????????myMean??=?mean(dataPts(:inInds)2);?%計(jì)算新的聚類中心坐標(biāo)
????????beenVisitedFlag(inInds)?=?1;?%標(biāo)記點(diǎn)云中各點(diǎn)的查詢情況
????????if?norm(myMean-myOldMean)?????????????mergeWith?=?0;?%初始化合并簇的參數(shù)
????????????for?cN?=?1:numClust
????????????????distToOther?=?norm(myMean-clustCent(:cN));?%與其它簇中心的距離
????????????????if?distToOther?????????????????????mergeWith?=?cN;
????????????????????break
????????????????end
????????????end
????????????if?mergeWith?>?0
????????????????clustCent(:mergeWith)?=?0.5*(myMean+clustCent(:mergeWith));?%最終的clustCent會(huì)重新計(jì)算所以
????????????????clusterVotes(mergeWith:)?=?clusterVotes(mergeWith:)?+?thisClusterVotes;
????????????else
????????????????numClust?=?numClust+1;
????????????????clustCent(:numClust)?=?myMean;
????????????????clusterVotes(numClust:)?=?thisClusterVotes;
????????????end
????????????break
????????end
????end
????Initidx?=?find(beenVisitedFlag?==?0);
????numInitPts?=?length(Initidx);
end
if?numClust<100
????clusterVotes(numClust+1:end:)?=?[];
end
[~data2cluster]?=?max(clusterVotes[]1);
end
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-09?11:43??點(diǎn)云精簡(jiǎn)_高斯球\
?????目錄???????????0??2018-04-09?11:43??點(diǎn)云精簡(jiǎn)_高斯球\bunny\
?????文件?????1988159??2012-12-01?22:35??點(diǎn)云精簡(jiǎn)_高斯球\bunny\bun000.ply
?????文件?????1965799??2012-12-01?22:35??點(diǎn)云精簡(jiǎn)_高斯球\bunny\bun045.ply
?????文件?????1651508??2012-12-01?22:35??點(diǎn)云精簡(jiǎn)_高斯球\bunny\bun090.ply
?????文件?????1983009??2012-12-01?22:35??點(diǎn)云精簡(jiǎn)_高斯球\bunny\bun180.ply
?????文件?????1679880??2012-12-01?22:35??點(diǎn)云精簡(jiǎn)_高斯球\bunny\bun270.ply
?????文件?????1808074??2012-12-01?22:35??點(diǎn)云精簡(jiǎn)_高斯球\bunny\bun315.ply
?????文件?????3033195??1996-08-05?08:00??點(diǎn)云精簡(jiǎn)_高斯球\bunny\bun_zipper.ply
?????文件??????658744??1996-08-05?08:00??點(diǎn)云精簡(jiǎn)_高斯球\bunny\bun_zipper_res2.ply
?????文件??????148524??1996-08-05?08:01??點(diǎn)云精簡(jiǎn)_高斯球\bunny\bun_zipper_res3.ply
?????文件???????34359??1996-08-05?08:01??點(diǎn)云精簡(jiǎn)_高斯球\bunny\bun_zipper_res4.ply
?????文件?????1861310??2012-12-01?22:35??點(diǎn)云精簡(jiǎn)_高斯球\bunny\chin.ply
?????文件?????1686708??2012-12-01?22:35??點(diǎn)云精簡(jiǎn)_高斯球\bunny\ear_back.ply
?????文件?????1898128??2012-12-01?22:35??點(diǎn)云精簡(jiǎn)_高斯球\bunny\top2.ply
?????文件?????1833305??2012-12-01?22:35??點(diǎn)云精簡(jiǎn)_高斯球\bunny\top3.ply
?????文件????????3022??2017-03-21?15:19??點(diǎn)云精簡(jiǎn)_高斯球\mymeanshift1.m
?????文件????????1194??2018-04-03?18:57??點(diǎn)云精簡(jiǎn)_高斯球\norcur.m
?????文件???????16255??2016-04-05?16:14??點(diǎn)云精簡(jiǎn)_高斯球\ply_read.m
?????文件????????1647??2018-04-09?11:01??點(diǎn)云精簡(jiǎn)_高斯球\test_myjingjian.m
評(píng)論
共有 條評(píng)論