PCL学习笔记5-range-image深度图像

点云与深度图本质的区别

1.深度图像(Depth Images)是指将从图像采集器到场景中各点的距离值作为像素值的图像,它直接反应了景物可见表面的几何形状。获取方法有:激光雷达深度成像法、计算机立体视觉成像、坐标测量机法、莫尔条纹法、结构光法。

2.点云当一束激光照射到物体表面时,反射的激光会携带方位、距离等信息。若将激光束按照某种轨迹进行扫描,便会边扫描边记录到反射的激光点信息。点云格式有*.las ;*.pcd; *.txt等。(三维空间坐标)

PCL 中深度图像与点云最主要的区别在于近邻的检索方式的不同,并且可以互相转换。

深度图像经过坐标转换可以计算为点云数据;有规则及必要信息的点云数据可以反算为深度图像

深度图像是物体的三维表示形式,如果具备照相机的内标定参数可以将深度图像转换为点云

RangeImage类继承于PointCloud,主要功能是实现一个特定视点得到一个三维场景的深度图像。其继承关系如下:

RangeImagePlanner 该类不使用球类投影方式,而是通过一个平面投影方式进行投影(因此对于利用深度传感器获取的深度图像来说比较实用)

从点云创建深度图

函数:通过pointCloud点云创建深度图

createFromPointCloud(pointCloud, angularResolution, maxAngleWidth, maxAngleHeight,sensorPose, coordinate_frame, noiseLevel, minRange, borderSize)

  • pointCloud:被检测点云
  • angularResolution=1:邻近的像素点所对应的每个光束相差 1°
  • maxAngleWidth=360:进行模拟的距离传感器对周围的环境拥有一个完整的360°视角,无论任何数据集都推荐使用此设置,因为最终获取的深度图像将被裁剪到有空间物体存在的区域范围
  • maxAngleHeight=180: 当传感器后面没有可以观测的点时,设置一个水平视角为180°的激光扫描仪即可,因为需要观察距离传感器前面就可以了。
  • sensorPose: 定义了模拟深度图像获取传感器的6DOF(6自由度)位置,其原始值为横滚角roll、俯仰角 pitch、偏航角 yaw 都为 0
  • coordinate_frame: 设置为CAMERA_FRAME说明系统的X轴是向右的、Y轴是向下的、Z轴是向前的,另外参数值是LASER_FRAME,其X轴向前、Y轴向左、Z轴向上
  • noiseLevel=0: 是指使用一个归一化的 Z缓存区来创建深度图像,如果想让邻近点集都落在同一个像素单元,可以设置一个较高的值,例如 noiseLevel = 0.05 可以理解为深度距离值是通过查询点半径为 5cm 的圆内包含的点用来平均计算而得到的 。
  • minRange=0:如果设置>0则所有模拟器所在位置半径 minRange 内的邻近点都将被忽略,即为盲区。
  • borderSize=1:如果设置>0 ,在裁剪图像时,将在图像周围留下当前视点不可见点的边界

 从深度图中提取边界

  1. obstacle border:对象边界(属于对象的最外面的可见点)
  2. shadow border:阴影边界(在背景中与遮挡物相邻的点)
  3. Veil points:面纱点集(对象边界与阴影边界之间的内插点)

 将点云转换为深度图像,可以从深度图像中提取到边界。

猜你喜欢

转载自blog.csdn.net/luoyihao123456/article/details/125252637
今日推荐