头文件
#include<pcl/filters/voxel_grid.h>
int find_center::lxr_filtered1(CP& cloudIn,double fitered_radius1) {
pcl::console::TicToc time; time.tic();
lxr_vision3(cloudIn);
//体素滤波
pcl::VoxelGrid<pcl::PointXYZ> sor;
CP cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);
sor.setInputCloud(cloudIn);
sor.setLeafSize(fitered_radius1, fitered_radius1, fitered_radius1);
sor.filter(*cloud_filtered);
cout << "滤波用时:" << time.toc() << "ms" << endl;
cout << "滤波前点云大小:" << cloudIn->size() << endl << "滤波后点云大小:" << cloud_filtered->size() << endl;
lxr_vision3(cloud_filtered);
cloudIn = cloud_filtered;
return 1;
}
结果如下
当fitered_radius1=0.03f时,滤波前后点云
当fitered_radius1=0.3f时,滤波前后点云