PCL预处理Filtering

预处理Filtering

  • 常用Filtering
    • PassThrough filter
    • VoxelGrid filter
    • StatisticalOutlierRemoval filter
    • Projecting points using a parametric model
    • Extracting indices from a PointCloud
    • Removing outliers using a Conditional or RadiusOutlier removal

常用Filtering

PassThrough filter

沿着指定的维度执行简单的过滤,即截断给定用户范围内或外部的值(x、y、z)。

  pcl::PassThrough<pcl::PointXYZ> pass;pass.setInputCloud (cloud);pass.setFilterFieldName ("z"); //z轴方向的过滤pass.setFilterLimits (0.0, 1.0); //基于点云原点的0-1m//pass.setFilterLimitsNegative (true);pass.filter (*cloud_filtered);

VoxelGrid filter

使用体素化网格方法缩小点云数据集的采样(降采样)

  pcl::VoxelGrid<pcl::PCLPointCloud2> sor;sor.setInputCloud (cloud);sor.setLeafSize (0.01f, 0.01f, 0.01f);创建格子大小为1cm的体素网格过滤器sor.filter (*cloud_filtered);

StatisticalOutlierRemoval filter

用于移除异常值
使用统计分析技术从点云数据集中移除噪声测量

//所有与查询点的平均距离的标准差大于1的点都将被标记为异常值并被删除pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;sor.setInputCloud (cloud);sor.setMeanK (50);//每个点要分析的邻居数设置为50sor