对于体素下采样接口功能函数pcl提供了两种方式: pcl::VoxelGrid
和pcl::ApproximateVoxelGrid
。
1. VoxelGrid体素采样
pcl库中的VoxelGrid对点云进行体素化,主要就是创建一个三维体素栅格(就是每个比较小的立方体组成的体素栅格)。在每个体素(三维立方体)里面,求取该立方体内的所有点云重心点来代表这个立方体的表示,以此达到下采样的目的。
class pcl::VoxelGrid<PointT>
2. ApproximateVoxelGrid体素采样
ApproximateVoxelGrid体素采样是用每个体素栅格的中心点来近似该体素内的点,提升了速度,但是也损失了原始点云的局部形态精细度。
class pcl::ApproximateVoxelGrid<PointT>
3. 实验结果对比
下面看一看对比一下VoxelGrid与ApproximateVoxelGrid的实验结果:
Filter | VoxelGrid | ApproximateVoxelGrid |
---|---|---|
点云滤波前/滤波后 | 460400/11598 | 460400/29186 |
时间/milliseconds | 107 | 93 |
- 不知你是否注意到这两种方法下采样后的点云个数不一致,主要原因在于ApproximateVoxelGrid是依据每一个体素的中心点来获取点云的,并不是依赖每个体素里面是否存在点云。所以会导致两种方式的处理结果又偏差,VoxelGrid的方式更加精确但是耗时相对于ApproximateVoxelGrid更高。
转自:https://blog.csdn.net/qq_45467083/article/details/109259206