【PCL-5】增采样

当目前拥有的点云数据量较少时,可通过内插点云的方法对目前点云数据进行扩充,达到保证基本形状不变的情况下增加点云。

#include 
#include 
#include 
#include  

typedef pcl::PointXYZ PointT;
int main()
{
	pcl::PointCloud::Ptr cloud(new pcl::PointCloud);
	pcl::PointCloud::Ptr after_cloud(new pcl::PointCloud);
	pcl::io::loadPCDFile("E://TY//camport3-master//cylinder.pcd", *cloud);
	//创建增采样对象
	pcl::MovingLeastSquares filter;
	filter.setInputCloud(cloud);                     //设置输入点云
	pcl::search::KdTree::Ptr kdtree;  //定义搜索方法
	filter.setSearchMethod(kdtree);                  //设置搜索方法
	filter.setSearchRadius(40.00);    //设置搜索邻域的半径为3cm  
	//Upsampling 采样的方法还有 DISTINCT_CLOUD, RANDOM_UNIFORM_DENSITY
	filter.setUpsamplingMethod(pcl::MovingLeastSquares::SAMPLE_LOCAL_PLANE);     //对点云进行上采样
	filter.setUpsamplingRadius(5.00);    //设置采样半径大小,3cm
	filter.setUpsamplingStepSize(1.00);  //设置采样步长大小,2cm
	filter.process(*after_cloud);      //执行采样操作
	pcl::io::savePCDFile("E://TY//camport3-master//cylinder-filter1.pcd", *after_cloud);
}

原始点云:

【PCL-5】增采样_第1张图片

 增采样后:

【PCL-5】增采样_第2张图片

 结论:只能增加点的密度,但对于空洞的填补无能为力。

你可能感兴趣的:(PCL)