资源简介
一篇15年文章的复原,先用kmeans均匀分块,然后高斯映射,然后meanshift精简。其中meanshift是固定阈值的,没加核函数。
代码片段和文件信息
function [data2clusternumClust] = mymeanshift1(dataPtsbandWidth)
% 经典无核漂移聚类算法
%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(‘输入参数不足‘);
end
[numDimnumPts] = size(dataPts);%[维度,点数][行数,列数]
% 初始化
numInitPts = numPts; %初始化的未聚类点数
Initidx = 1:numPts; %初始化的未聚类点索引
clusterVotes = zeros(100numPts‘uint16‘); %初始化的簇投票
beenVisitedFlag = zeros(1numPts‘uint8‘); %判断循环中止条件
numClust = 0; %初始化的簇总数
clustCent = zeros(numDim100); %初始化的簇中心
while numInitPts
tempInd = ceil( (numInitPts-1e-6)*rand); %选择随机种子点,作为初始聚类中心 %此处可用均匀初值优化
stInd = Initidx(tempInd); %该点在原始数据中的索引
myMean = dataPts(:stInd); %该点坐标
stopThresh = 1e-3*bandWidth; %迭代中止的阀值
thisClusterVotes = zeros(1numPts‘uint16‘); %各点对该簇的投票统计
while 1
%计算均值漂移向量
inInds = sum((repmat(myMean1numPts) - dataPts).^2) < bandWidth.^2; %内点的逻辑索引 %此处可由k-d tree加速
thisClusterVotes(inInds) = thisClusterVotes(inInds)+1; %各内点为该簇增加一个投票
myOldMean = myMean;
myMean = mean(dataPts(:inInds)2); %计算新的聚类中心坐标
beenVisitedFlag(inInds) = 1; %标记点云中各点的查询情况
if norm(myMean-myOldMean) < stopThresh %循环中止条件
mergeWith = 0; %初始化合并簇的参数
for cN = 1:numClust
distToOther = norm(myMean-clustCent(:cN)); %与其它簇中心的距离
if distToOther < bandWidth/2
mergeWith = cN;
break
end
end
if mergeWith > 0
clustCent(:mergeWith) = 0.5*(myMean+clustCent(:mergeWith)); %最终的clustCent会重新计算所以
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
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-09 11:43 点云精简_高斯球\
目录 0 2018-04-09 11:43 点云精简_高斯球\bunny\
文件 1988159 2012-12-01 22:35 点云精简_高斯球\bunny\bun000.ply
文件 1965799 2012-12-01 22:35 点云精简_高斯球\bunny\bun045.ply
文件 1651508 2012-12-01 22:35 点云精简_高斯球\bunny\bun090.ply
文件 1983009 2012-12-01 22:35 点云精简_高斯球\bunny\bun180.ply
文件 1679880 2012-12-01 22:35 点云精简_高斯球\bunny\bun270.ply
文件 1808074 2012-12-01 22:35 点云精简_高斯球\bunny\bun315.ply
文件 3033195 1996-08-05 08:00 点云精简_高斯球\bunny\bun_zipper.ply
文件 658744 1996-08-05 08:00 点云精简_高斯球\bunny\bun_zipper_res2.ply
文件 148524 1996-08-05 08:01 点云精简_高斯球\bunny\bun_zipper_res3.ply
文件 34359 1996-08-05 08:01 点云精简_高斯球\bunny\bun_zipper_res4.ply
文件 1861310 2012-12-01 22:35 点云精简_高斯球\bunny\chin.ply
文件 1686708 2012-12-01 22:35 点云精简_高斯球\bunny\ear_back.ply
文件 1898128 2012-12-01 22:35 点云精简_高斯球\bunny\top2.ply
文件 1833305 2012-12-01 22:35 点云精简_高斯球\bunny\top3.ply
文件 3022 2017-03-21 15:19 点云精简_高斯球\mymeanshift1.m
文件 1194 2018-04-03 18:57 点云精简_高斯球\norcur.m
文件 16255 2016-04-05 16:14 点云精简_高斯球\ply_read.m
文件 1647 2018-04-09 11:01 点云精简_高斯球\test_myjingjian.m
相关资源
- 四种聚类算法源代码及
- kmeans图像分类
- KMeans+BOF实现图像检索Matlab
- Kmeans均值算法MATLAB代码
- K-means算法的Matlab实现代码使用文档
- Matlab实现K-Means算法
- MATLAB-pca-kmeans+画椭圆分类程序
- Kmean图像聚类算法
- kmeans聚类程序
- BOW视觉词袋模型的matlab实现易理解,
- 用matlab实现模拟退火kmeans聚类
- k均值聚类算法MATLAB程序及注释
- 三维点云精简的均匀网格法&不均匀网
- 改进的基于划分算法的三维点云聚类
- 34行MATLAB实现k-均值聚类k-means和不同颜
- matlab kmeans聚类 代码和带图
- KMeans和Kmedoid算法的matlab实现
- matlab实现的点云精简算法
- Kmeans-MATLAB 该代码能够实现K均值聚类
- kmeans 基于K均值的自然图像聚类方法
- ChangeDetectionPCAkMeans 用于变化检测的方
- Kmeans 自适应K-均值聚类算法
- Kmeans 使用K均值做聚类分析来进行图像
- kmeans 改进的均值聚类算法
- 基于K-means聚类算法的图像分割的MAT
- K-means聚类分析Iris数据集模式识别
- K-MEANS改进聚类
- k-means聚类算法的matlab实现
- 基于MATLAB的kmeans方法聚类分析
- kmeans算法Matlab代码实现
评论
共有 条评论