VoxelGrid滤波器可以对密集的点云进行稀疏,减少计算机处理大量点云数据的压力;
RadiusOutlierRemoval统计每个点周边的邻近点个数,过滤掉离群的点。
将点云数据滤波并转化成PointCloud2在ros中发布的demo如下:
#include <pcl/io/pcd_io.h>
#include <pcl/impl/point_types.hpp>
#include <pcl_ros/point_cloud.h>
#include <pcl_conversions/pcl_conversions.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/filters/radius_outlier_removal.h>
#include <sensor_msgs/PointCloud2.h>
boost::shared_ptr<pcl::PointCloud<pcl::PointXYZ>> pcl_cloud(new pcl::PointCloud<pcl::PointXYZ>());
……//建立点云数据
……//建立点云数据
pcl::PointCloud<pcl::PointXYZ>::Ptr pcl_cloud_ptr(pcl_cloud);
boost::shared_ptr<pcl::PointCloud<pcl::PointXYZ>> pcl_vg_cloud(new pcl::PointCloud<pcl::PointXYZ>());
pcl::PointCloud<pcl::PointXYZ>::Ptr pcl_vg_cloud_ptr(pcl_vg_cloud);
boost::shared_ptr<pcl::PointCloud<pcl::PointXYZ&g