主要内容

extractEigenFeatures

从点云线段中提取基于特征值的特征

描述

例子

特性= extractEigenFeatures (ptCloud标签使用标签从点云中提取基于特征值的特征,标签,对应于分段的点云。

基于特征值的特征描述了点云段的几何特征。这些特性可用于同步定位和绘图(SLAM)应用程序,用于目标地图中的环路检测和定位。

特性= extractEigenFeatures (segmentsIn从点云段返回基于特征值的特征segmentsIn.使用此语法可以方便地在点云扫描中选择特定的片段进行局部特征提取。

特性segmentsOut) = extractEigenFeatures (___此外,还使用以前语法中的任何参数组合返回从输入点云提取的线段。使用此语法有助于分段的可视化。

例子

全部崩溃

加载有组织的激光雷达点云。

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

拆下接地面。

groundPtsIdx = segmentGroundFromLidarData (ptCloud,“升降角度增量”15);ptCloud =选择(ptCloud ~ groundPtsIdx,“OutputSize”“满”);

对剩余点进行聚类,每个聚类至少50个点。

距离阈值=0.5;%在米最小点数=50[标签、numClusters]=分段LidarData(ptCloud、distThreshold、,“NumClusterPoints”, minPoints);

从点云中提取基于特征值的特征及其对应的段。

(特性、段)= extractEigenFeatures (ptCloud、标签)
特征=17×1对象16x1特征特征阵列,具有以下特性:特征质心⋮
段=17×1对象16x1 pointCloud数组带有属性:Location Count XLimits YLimits ZLimits Color Normal Intensity⋮

创建Velodyne PCAP文件读取器。

veloReader = velodyneFileReader (“lidarData_ConstructionRoad.pcap”“HDL32E”);

从文件中读取第一次和第四次扫描。

ptCloud1 = readFrame (veloReader, 1);ptCloud2 = readFrame (veloReader 4);

从扫描中移除接地面。

maxDistance = 1;%在米referenceVector = [0 0 1];[~, ~, selectIdx] = pcfitplane (ptCloud1、maxDistance referenceVector);ptCloud1 =选择(ptCloud1 selectIdx,“OutputSize”“满”);[~, ~, selectIdx] = pcfitplane (ptCloud2、maxDistance referenceVector);ptCloud2 =选择(ptCloud2 selectIdx,“OutputSize”“满”);

以每个簇至少10个点对点云进行聚类。

思维距离=2;%在米最小点数=10;标签1=pcsegdist(ptCloud1,MindDistance,“NumClusterPoints”,分);标签2=pcsegdist(ptCloud2,MindDistance,“NumClusterPoints”, minPoints);

从每个点云中提取特征值特征和对应的段。

[eigFeatures1, segments1] = extractEigenFeatures (ptCloud1 labels1);[eigFeatures2, segments2] = extractEigenFeatures (ptCloud2 labels2);

从每个点云中提取的特征和质心创建矩阵,用于匹配。

features1=vertcat(EIGFeaatures1.Feature);features2=vertcat(eigFeatures2.Feature);质心1=顶点(EIG特征1.质心);质心2=顶点(EIG特征2.质心);

查找假定的特征匹配项。

indexPairs=pcmatchfeatures(特征1、特征2、,...点云(质心1)、点云(质心2);

获取匹配的片段和特征以进行可视化。

matchedSegments1 = segments1 (indexPairs (: 1));matchedSegments2 = segments2 (indexPairs (:, 2));matchedFeatures1 = eigFeatures1 (indexPairs (: 1));matchedFeatures2 = eigFeatures2 (indexPairs (:, 2));

可视化匹配。

图PCshow MatchedFeatures(matchedSegments1、matchedSegments2、matchedFeatures1、matchedFeatures2)标题(“匹配段”

图中包含一个坐标轴。标题为Matched Segments的轴包含5个类型为scatter, line的对象。

输入参数

全部崩溃

点云,指定为点云对象

群集标签,指定为-无组织点云或点云的数值元素向量-借-N有组织点云的数值矩阵。标签对应于输入点云的分割结果。点云中的每个点都有一个集群标签,由中的对应元素指定标签

你可以使用pcsegdist或者segmentLidarData函数返回标签。

点云线段,指定为点云物体。输入中的每个点云段必须至少有两个用于特征提取的点。对于只有一个点的输入线段,不会返回任何特征或线段。

输出参数

全部崩溃

基于特征值的特征,返回为的向量eigenFeature对象。当从标记点云输入提取特征时,这个向量中的每个元素都包含从对应的标记点聚类中提取的特征。当您从片段输入中提取特征时,这个向量中的每个元素都包含从片段向量中对应元素中提取的特征。

从点云提取的线段,指定为点云物体。分段向量的长度对应于非零唯一标签的数量。

工具书类

[1] Weinmann M., B. Jutzi, C. Mallet。语义三维场景解释:一个结合最佳邻域尺寸选择和相关特征的框架。摄影测量、遥感和空间信息科学年鉴II-3(2014年8月7日):181-88。https://doi.org/10.5194/isprsannals-II-3-181-2014.

在R2021a中引入