直通滤波
#include <pcl/filters/passthrough.h>
#include<pcl/common/common_headers.h>
pcl::PointCloud<pcl::PointXYZ>::Ptr PclTool::passThroughFilter(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud, std::string field_name, float Limit_low, float Limit_hig, bool is_save)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PassThrough<pcl::PointXYZ> pass;
pass.setInputCloud(cloud);
pass.setFilterFieldName(field_name);
pass.setFilterLimits(Limit_low, Limit_hig);
pass.filter(*cloud_filtered);
return cloud_filtered;
}
- 保留(Limit_low~Limit_hig)范围内的点
VoxelGrid滤波器下采样
#include <pcl/filters/voxel_grid.h>
pcl::PCLPointCloud2::Ptr PclTool::voxelGridFilter(pcl::PCLPointCloud2::Ptr cloud, float lx, float ly, float lz)
{
pcl::PCLPointCloud2::Ptr cloud_filtered(new pcl::PCLPointCloud2());
pcl::VoxelGrid<pcl::PCLPointCloud2> sor;
sor.setInputCloud(cloud);
sor.setLeafSize(lx, ly, lz);
sor.filter(*cloud_filtered);
return cloud_filtered;
}