1.扫描线提取原理
目前车载LiDAR系统搭载的激光扫描仪主要是线性扫描,获得的扫描点在目标上按扫描线排列。在同一扫描线中,系统记录的连续激光脚点的扫描角度差值为固定值(一般为激光扫描仪的角度分辨率)。在一个完整的扫描周期中,若扫描视场角为顶部天空,会出现无激光脚点返回的情况。此时当前扫描线的最后一个点和下一条扫描线的起始点的扫描角度有一个非规律的阶跃。同理,因为车载激光点云的连续性,当扫描视角为顶部天空时,GPS时间差也会出现一个非规律的阶跃。因此可以设置一个角度阂值或时间阂值检测扫描线两端的断点,将连续点云归于一条扫描线中,从而将离散的扫描点转化成有序的二维扫描线数据集。(参考自方莉娜博士论文)
由于.las格式的点云文件包含每个离散点的扫描角度和GPS时间信息,所以可以按照上述方法提取出扫描线,并按照扫描线进行点云特征识别与分析等。本文的例子采用时间阈值提取扫描线。
2.核心代码实现
2.1 自定义pcl点云类型
struct myPointXYZTI
{
PCL_ADD_POINT4D;
union
{
float coordinate[