主要内容

segmentGroundFromLidarData

从有组织的激光雷达数据分割地面点

描述

例子

groundPtsIdx=从Lidardata到SegmentGround(ptCloud分段组织三维激光雷达数据,ptCloud,分为地面和非地面部分。激光雷达传感器必须水平安装,以便在激光雷达扫描中观察到最接近传感器的所有地面点。

groundPtsIdx=从Lidardata到SegmentGround(ptCloud名称、值使用一个或多个名称-值对设置属性。将每个属性名用引号括起来。例如,Lidardata的分段地面(ptCloud,'ElevationAngleDelta',5)

例子

全部崩溃

从有组织的激光雷达点云中分割地面点和非圆形点。从这些分割创建有组织的点云,并显示它们。

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

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

从组织的激光雷达点云分割地面点。

groundPtsIdx=分段groundfromLidardata(ld.ptCloud);

创建一个只包含这些地面点的有组织的点云,使用选择函数。显示这个点云。

groundPtCloud=select(ld.ptCloud,groundPtsIdx);图pcshow(groundPtCloud)

图中包含一个轴对象。axis对象包含一个散点类型的对象。

创建仅包含非圆形点的有序点云。指定0.5米的阈值。

nonGroundPtCloud=select(ld.ptCloud,~groundPtsIdx,“OutputSize”“满”);distThreshold = 0.5;[标签,numClusters] = segmentLidarData (nonGroundPtCloud distThreshold);

显示非圆形点云簇。

figure colormap(hsv(numClusters))pcshow(nonGroundPtCloud.位置,标签)标题(“点云集群”

图中包含一个轴对象。具有标题点云簇的轴对象包含“散布”类型的对象。

将Velodyne PCAP®加载到工作区。

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

使用pc播放器创建一个点云播放器。定义它的x-,y- - - - - -,z-轴限制,以米为单位,并标记其轴。

Xlimits = [-40 40];Ylimits = [-15 15];Zlimits = [-3 3];球员= pcplayer (xlimits ylimits zlimits);

标记pcplayer轴。

包含(球员。轴,‘X(m)’)ylabel(player.Axes,‘Y(m)’)兹拉贝尔(player.Axes,“Z (m)”

设置标记点的颜色贴图。使用RGB三元组指定地平面点为绿色,障碍点为红色。

颜色= [0 1 0;1 0 0];greenIdx = 1;redIdx = 2;

使用以下命令迭代Velodyne PCAP文件中的前200个点云:读框读取数据。从每个点云分割地点。将所有接地点涂成绿色,非接地点涂成红色。绘制得到的激光雷达点云。

彩色地图(player.Axes,colors)标题(player.Axes,“激光雷达点云的分段地平面”);i=1:200读取当前帧。ptCloud=velodyneFileReaderObj.readFrame(i);%创建标签数组。colorLabels=0(大小(ptCloud.Location,1),大小(ptCloud.Location,2));找到地面点。groundPtsIdx=分段groundfromLidardata(ptCloud);%地图颜色地面点为绿色。colorLabels(groundPtsIdx (:)) = greenIdx;%将圆形点的颜色映射为红色。彩色标签(~groundPtsIdx(:)=redIdx;%绘制结果。视图(球员,ptCloud.Location colorLabels)结束

地物点云播放器包含一个轴对象。标题为“Lidar点云分段地平面”的轴对象包含一个散射类型的对象。

输入参数

全部崩溃

点云,指定为点云对象ptCloud是一个有组织的点云,存储[xyz点的坐标-借-N-by-3矩阵。

名称-值参数

例子:“升降角度增量”,5

用于识别地面点的仰角差阈值,指定为非负标量。该功能计算一个标记的地点和它的四个相连的邻居之间的仰角差。如果差值低于阈值,邻域点被标记为接地。典型值ElevationAngleDelta在[5,15]度范围内。增加此值以包含来自不平坦地面的更多点。

初始仰角阈值,用于识别扫描线中距离激光雷达传感器最近的地面点,指定为非负标量。当仰角低于此值时,该函数将点标记为地面。的典型值InitialElevationAngle在15到30度的范围内。

输出参数

全部崩溃

点索引,返回为-借-N逻辑矩阵。元素与符合事实的值,1,指示接地点。元素与值,0,表示非接地点。

工具书类

[1] Bogoslavskyi,I.“稀疏3D激光扫描的高效在线分割。”摄影测量、遥感与地理信息科学学报2017年第85卷第1期,第41-52页。

扩展功能

C/C++代码生成
使用Matlab®编码器生成C和C++代码™.

介绍了R2018b