博客长期更新,本文最近一次更新时间为:2024年12月9日。① 优化代码结构和原理介绍;② 代码在PCL1.14.1上运行成功。
一、算法概述
PCL的VoxelGrid类和ApproximateVoxelGrid类实现基于体素的滤波方法对点云进行下采样,八叉树同样也是建立体素,因此基于八叉树的体素同样可以对点云进行下采样。PCL中有现成函数可实现求解八叉树体素中心,所以最简单的方法就是用八叉树的体素中心点来代替每一个体素内的点,从而实现点云的下采样。
注意:这种方法与ApproximateVoxelGrid基本相同,都是以中心点代替体素内的点。惟一的区别是:ApproximateVoxelGrid可以自由设置体素的长宽高,而八叉树只能是构建正方体的体素。
代码中也实现了对八叉树体素滤波的改进,即用距离体素中心点最近的点来代替体素中心点,从而做到下采样之后的点都还是原始点云数据中的点。
二、代码实现
octree_sample.h
本文介绍了PCL库中基于八叉树的体素滤波方法,用于点云下采样。通过八叉树构建体素并以中心点或最近邻点替代,实现点云数据的精简。提供了代码实现及两种不同的结果展示:一种使用体素中心点,另一种采用最近邻点确保下采样点来自原始点云。
订阅专栏 解锁全文
589

被折叠的 条评论
为什么被折叠?



