主要内容

pcsegdist

基于欧氏距离的点云分割成集群

描述

标签= pcsegdist (ptCloud,minDistance)部分点云到集群,最小欧氏距离minDistance从不同的集群点之间。pcsegdist分配一个整数集群标签对每个点的点云,并返回标签所有的点。

例子

(标签,numClusters)= pcsegdist (ptCloud,minDistance)还返回集群的数量。

(___)= pcsegdist (___,名称=值)使用名称-值参数设置属性。例如,标签= pcsegdist (ptCloud,minDistanceNumClusterPoints =[1,正])设置最小和最大数量的点在每个集群(1正)

例子

全部折叠

创建两个同心球体和组合。

[X, Y, Z] =球(100);loc1 = [X (:), Y (,)、Z (:));loc2 = 2 * loc1;ptCloud = pointCloud ([loc1; loc2]);pcshow (ptCloud)标题(“点云”)

图包含一个坐标轴对象。坐标轴对象与标题点云包含一个散射类型的对象。

设置集群之间的最小欧氏距离。

minDistance = 0.5;

段的点云。

[标签,numClusters] = pcsegdist (ptCloud minDistance);

图标注的结果。点是分为两个集群。

pcshow (ptCloud.Location、标签)colormap (hsv (numClusters))标题(“点云集群”)

图包含一个坐标轴对象。坐标轴对象与标题点云集群包含一个散射类型的对象。

在工作区中加载一个有组织的激光雷达点云。

ld =负载(“drivingLidarPoints.mat”);

探测到地平面。以米的距离。

maxDistance = 0.9;referenceVector = (0 0 1);[~,内围层,离群值]= pcfitplane (ld.ptCloud, maxDistance referenceVector);

删除地平面点。

ptCloudWithoutGround =选择(ld.ptCloud、异常值);

集群的点云,最低10分集群。

minDistance = 2;minPoints = 10;[标签,numClusters] = pcsegdist (ptCloudWithoutGround minDistance,“NumClusterPoints”,minPoints);

删除标签值的点0

idxValidPoints =找到(标签);labelColorIndex =标签(idxValidPoints);segmentedPtCloud =选择(ptCloudWithoutGround idxValidPoints);

图标注的结果。

图colormap (hsv (numClusters)) pcshow (segmentedPtCloud.Location labelColorIndex)标题(“点云集群”)

图包含一个坐标轴对象。坐标轴对象与标题点云集群包含一个散射类型的对象。

输入参数

全部折叠

点云,指定为一个pointCloud对象。

最小欧氏距离分从两个不同的集群,指定为一个积极的标量。

数据类型:|

名称-值参数

例子:ParallelNeighborSearch=设置ParallelNeighborSearch

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

最小和最大数量的点在每个集群,指定为一个标量或2-element向量的形式minPoints,maxPoints]。当你指定NumClusterPoints作为一个标量,集群中的点的最大数量是不受限制的。函数集标签0当集群指定范围之外的。

平行的邻居搜索部分点云数据,指定为真正的。将此属性设置为真正的当你预计有大约50集群或更多与集群不到100分。

一个平行的邻居搜索一些数据集可以提高分割速度。改进的速度取决于数据集和的值minDistance输入。

输出参数

全部折叠

集群品牌,返回的是下列之一。

  • 如果点云,ptCloud作为一个无组织的,商店点位置3矩阵,然后标签是一个1的向量。

  • 如果点云,ptCloud作为一个组织,商店点位置——- - - - - -N3矩阵,然后标签是一个——- - - - - -N矩阵。

集群点云中的每一个点都有一个标签,规定相应的元素标签。每个标签的值是一个整数0集群的数量的有效点,numClusters。的值0被预留给无效点,如点坐标。

数据类型:uint32

数量的集群,作为一个正整数返回。集群的数量不包括标签值0,这是留给无效点。函数返回numClusters作为一个数据类型的值位置财产的ptCloud对象是。否则,函数返回值为数据类型。

数据类型:|

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2018a