MATLAB点云处理:欧式聚类分割
Posted 没事就要敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB点云处理:欧式聚类分割相关的知识,希望对你有一定的参考价值。
1 欧式聚类分割函数 pcsegdist
pcsegdist
— 基于欧式距离实现点云分割。
MATLAB提供了2种重载方式
labels = pcsegdist(ptCloud,minDistance)
将点云分割为多个聚类,不同聚类的点之间的最小欧几里德距离为minDistance
[labels,numClusters] = pcsegdist(ptCloud,minDistance)
将点云分割为多个聚类,不同聚类的点之间的最小欧几里德距离为minDistance,同时返回聚类个数numClusters,要求numClusters为正整数
2 代码实现
无组织点云的欧式聚类分割
代码:
clc;
clear;
% 加载点云
ptCloud_in = pcread('trees.pcd');
% 最小聚类欧式距离
minDist = 1.0;
% 执行欧式聚类分割
[labels,numClusters] = pcsegdist(ptCloud_in,minDist);
% 显示分割结果
pcshow(ptCloud_in.Location,labels);
colormap(hsv(numClusters));
title('欧式聚类分割');
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
结果展示:
3 输出参数 labels
labels
— Cluster labels
聚类标签,作为以下内容之一返回。
- 如果点云ptCloud将点位置存储为无组织的M×3矩阵,则标签是M×1向量。
- 如果点云ptCloud将点位置存储为有组织的M-by-N-by-3数组,则标签是M-by-N矩阵。
点云中的每个点都有一个聚类标签,由标签中相应的元素指定。每个标签的值是一个从0到有效聚类数numClusters的整数。值0是为无效点,例如具有Inf或NaN坐标的点。
4 参考链接
https://ww2.mathworks.cn/help/vision/ref/pcsegdist.html#d123e189157
以上是关于MATLAB点云处理:欧式聚类分割的主要内容,如果未能解决你的问题,请参考以下文章