主要内容

extractEigenFeatures

从点云提取eigenvalue-based功能段

描述

例子

特性= extractEigenFeatures (ptCloud,标签)从点云提取eigenvalue-based特性使用标签,标签,对应于分段点云。

Eigenvalue-based特征点云段的几何特征。这些特性可以用于同步定位和映射(大满贯)应用程序关闭循环检测和定位目标的地图。

特性= extractEigenFeatures (segmentsIn)从点云段返回eigenvalue-based特性segmentsIn。使用这个语法来促进特定片段的选择在一个点云扫描局部特征提取。

(特性,segmentsOut)= extractEigenFeatures (___)此外返回段从输入中提取点云从先前的语法使用参数的任意组合。使用这个语法方便的可视化片段。

例子

全部折叠

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

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

段和删除地上飞机。

groundPtsIdx = segmentGroundFromLidarData (ptCloud,“ElevationAngleDelta”15);ptCloud =选择(ptCloud ~ groundPtsIdx,“OutputSize”,“全部”);

集群剩余的50分,最低分集群。

distThreshold = 0.5;%在米minPoints = 50;[标签,numClusters] = segmentLidarData (ptCloud distThreshold,“NumClusterPoints”,minPoints);

提取eigenvalue-based从点云的特性和相应的部分。

(特性、段)= extractEigenFeatures (ptCloud、标签)
特点=17×1对象16 x1 eigenFeature数组属性:重心⋮特性
段=17×1对象16 x1 pointCloud数组属性:位置计数XLimits YLimits ZLimits⋮颜色正常的强度

创建一个调速发电机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分。

minDistance = 2;%在米minPoints = 10;labels1 = pcsegdist (ptCloud1 minDistance,“NumClusterPoints”,minPoints);labels2 = pcsegdist (ptCloud2 minDistance,“NumClusterPoints”,minPoints);

提取提取从每个点云的特性和相应的部分。

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

创建矩阵的特性和质心提取每个点云匹配。

features1 = vertcat (eigFeatures1.Feature);features2 = vertcat (eigFeatures2.Feature);centroids1 = vertcat (eigFeatures1.Centroid);centroids2 = vertcat (eigFeatures2.Centroid);

找到公认的特征匹配。

indexPairs = pcmatchfeatures (features1 features2,pointCloud (centroids1) pointCloud (centroids2));

得到匹配段和可视化功能。

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

可视化匹配。

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

图包含一个轴。坐标轴标题匹配段包含5类型的对象分散,线。

输入参数

全部折叠

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

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

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

点云段,指定为一个向量的pointCloud对象。每个点云分割输入必须有一个最低的两个点特征提取。没有功能或部分返回输入部分只有一个点。

输出参数

全部折叠

Eigenvalue-based特性,作为一个向量的返回eigenFeature对象。当你从一个标记点云提取特征输入,这个向量中每个元素包含标记点的特性提取相应的集群。当你从一段输入,提取特征向量中每个元素包含片段中提取相应的元素的特性向量。

段从点云提取,指定为一个向量的pointCloud对象。段的长度向量对应的非零的数量,独特的标签。

引用

[1]Weinmann, M。,B. Jutzi, and C. Mallet. “Semantic 3D Scene Interpretation: A Framework Combining Optimal Neighborhood Size Selection with Relevant Features.”ISPRS年报的摄影测量、遥感和空间信息科学II-3(2014年8月7日):181 - 88。https://doi.org/10.5194/isprsannals - ii - 3 - 181 - 2014。

介绍了R2021a