PCL半径滤波RadiusOutlierRemoval移除离群点的实现
算法原理
下图1中是对RadiusOutlierRemoval滤波处理的示意图。
在点云数据中用户可以定义每个点的一定半径圆的范围内要有足够多近邻。例如当指定圆领域内至少要有一个邻近点时,黄色点将被删除;如果指定要有两个点时,黄色和绿色点都将被删除而黑色点会被保留(黑色点近邻圆内有4个点)。
图1原理示意图:
因此,使用该算法时需要对搜索半径和近邻点个数阈值进行设置。
实现代码
函数头
include <pcl/filters/radius_outlier_removal.h>//执行半径滤波时所用的头文件
滤波器参数设置
调用该滤波器时需要先对其工作的必要参数进行设置,主要包括:1、搜索半径,2、邻近点个数的阈值;
setRadiusSearch(0.8);//设置在0.8的半径内找临近点
setMinNeighborsInRadius(2);//设置查询点的邻近点集数小于2的删除
使用实例
下方的代码为调用半径滤波器对点云处理的一个实例,实例中处理的点云为随机生成的点云数据,调用该滤波器时首先创建了该滤波器,其次定义了滤波输入的点云对象ÿ