- 均匀采样滤波基本上等同于体素滤波器,但是其不改变点的位置。下采样后,其点云分布基本均匀,但是其点云的准确度要好于体素滤波,因为没有移动点的位置。
- 均匀采样算法:均匀采样通过构建指定半径的球体对点云进行下采样滤波,将每一个球内距离球体中心最近的点作为下采样之后的点输出。
- 体素滤波是建立立方体,均匀采样是建立一个球
#include <pcl/io/pcd_io.h>
#include <pcl/filters/uniform_sampling.h>
#include <iostream>
#include <pcl/point_types.h>
#include <pcl/io/ply_io.h>
int main(int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointCloud<pcl::PointXYZ>::Ptr filteredCloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::io::loadPLYFile<pcl::PointXYZ>("d5b.ply", *cloud);
pcl::UniformSampling<pcl::PointXYZ> filter;
filter.setInputCloud(cloud);
filter.setRadiusSearch(0.02f);
filter.filter(*filteredCloud);
pcl::io::savePLYFile("dd.ply", *filteredCloud);
return 0;
}