一、算法概述
VoxelGrid类和ApproximateVoxelGrid类实现基于体素的滤波方法对点云进行下采样,八叉树同样也是建立体素,因此基于八叉树的体素同样可以对点云进行下采样。pclpy中实现了基于八叉树的体素下采样,有两种实现方式:一种是使用八叉树占用体素内点XYZ的均值代替占用体素内所有的点,另一种是使用八叉树占用体素内XYZRGB的均值来代替该体素内所有的点。最终表现的结果是,使用XYZ均值的计算方式获得的点云没有颜色信息,使用XYZRGB均值计算得到的点云有颜色,但是改颜色是体素内所有点RGB的均值(代码中有详细注释)
注意:这种方法与ApproximateVoxelGrid基本相同,都是以中心点代替体素内的点。惟一的区别是:ApproximateVoxelGrid可以自由设置体素的长宽高,而八叉树只能是构建正方体的体素。
二、代码实现
import