完整运行成功代码:
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/surface/mls.h>
#include<pcl/search/impl/kdtree.hpp>
int main()
{
pcl::PointCloud<PointXYZ>::Ptr cloud(new pcl::PointCloud<PointXYZ>);
pcl::PointCloud<PointXYZ>::Ptr after_cloud(new pcl::PointCloud<PointXYZ>);
//创建增采样对象
pcl::MovingLeastSquares<pcl::PointXYZ, pcl::PointXYZ> filter;
filter.setInputCloud(cloud); //设置输入点云
pcl::search::KdTree<pcl::PointXYZ>::Ptr kdtree; //定义搜索方法
filter.setSearchMethod(kdtree); //设置搜索方法
filter.setSearchRadius(0.03); //设置搜索邻域的半径为3cm
//Upsampling 采样的方法还有 DISTINCT_CLOUD, RANDOM_UNIFORM_DENSITY
filter.setUpsamplingMethod(pcl::MovingLeastSquares<pcl::PointXYZ, pcl::PointXYZ>::SAMPLE_LOCAL_PLANE); //对点云进行上采样
filter.setUpsamplingRadius(0.03); //设置采样半径大小,3cm
filter.setUpsamplingStepSize(0.02); //设置采样步长大小,2cm
filter.process(*after_cloud); //执行采样操作
}
> https://blog.csdn.net/WXG1011/article/details/129777073
在运行引用后make发现终端报错:
error: ‘KdTree’ is not a member of ‘pcl::search’;
解决办法:加入头文件(可能由于PCL版本所引起)
#include<pcl/search/impl/kdtree.hpp>
``