【PCL-1】RANSAC平面分割_pcl ransac平面_WXG1011的博客-CSDN博客
这篇博客已介绍直通滤波与体素滤波,这里主要记录统计滤波。
统计滤波是遍历计算各测点与其领域点的平均距离,以此为标量,假设为高斯正态分布,按标准差去除离群点。
官方文档
示例代码:
#include <pcl/filters/statistical_outlier_removal.h>
...
pcl::PointCloud<pcl::PointXYZL>::Ptr lccp_labeled_cloud = sv_labeled_cloud->makeShared();
...
//统计滤波
// 创建统计学离群点移除过滤器
pcl::PointCloud<pcl::PointXYZL>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZL>);
pcl::StatisticalOutlierRemoval<pcl::PointXYZL> sor;
sor.setInputCloud(lccp_labeled_cloud);
// 设置过滤邻域K
sor.setMeanK(50);
// 设置标准差的系数, 值越大,丢掉的点越少
sor.setStddevMulThresh(1.0f);
sor.filter(*cloud_filtered);
//取反,保存被过滤掉的点云
sor.setNegative (true);
sor.filter(*cloud_filtered);
pcl::io::savePCDFileASCII("E:\\testdata\\1.pcd", *cloud_filtered);
运行结果:
可以明显的看到一些离散的点已经被去除。