#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/filters/statistical_outlier_removal.h>
int main()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr table_point(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointCloud<pcl::PointXYZ>::Ptr table_point_filter(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PCDReader reader;
reader.read<pcl::PointXYZ>("E:\\vs_code\\hello_pcl\\hello_pcl\\table_scene_lms400.pcd",*table_point);
pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;
sor.setInputCloud(table_point);
sor.setMeanK(50);
sor.setStddevMulThresh(1.0);
sor.filter(*table_point_filter);
pcl::visualization::PCLVisualizer my_viewer1;
pcl::visualization::PCLVisualizer my_viewer2;
my_viewer1.addPointCloud(table_point);
my_viewer2.addPointCloud(table_point_filter);
while(!my_viewer1.wasStopped())
{
my_viewer1.spinOnce(100);
my_viewer2.spinOnce(100);
}
return 0;
}
关键代码
pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;
sor.setInputCloud(table_point);
sor.setMeanK(50);
sor.setStddevMulThresh(1.0);
sor.filter(*table_point_filter);
设置输入点云、设置最近点查询的点数、设置平均距离的阈值,进行计算