3d PCL体素下采样滤波器作为函数

3d PCL体素下采样滤波器作为函数,3d,point-cloud-library,point-clouds,3d,Point Cloud Library,Point Clouds,我想使用一些过滤器作为“函数”,以便对不同的输入云使用相同的过滤器,即传递不同的云作为参数。例如,体素过滤器(见下文)可用于不同的输入云。如果我有云A和云B,我必须定义sor1和sor2,因为我不能在两者上使用相同的sor,或者这是可能的,但我不知道如何做。有人能分享一些关于这方面的想法吗 // Create the filtering object pcl::VoxelGrid<pcl::PCLPointCloud2> sor; sor.setInputCloud (clou

我想使用一些过滤器作为“函数”,以便对不同的输入云使用相同的过滤器,即传递不同的云作为参数。例如,体素过滤器(见下文)可用于不同的输入云。如果我有云A和云B,我必须定义sor1和sor2,因为我不能在两者上使用相同的sor,或者这是可能的,但我不知道如何做。有人能分享一些关于这方面的想法吗

 // Create the filtering object
 pcl::VoxelGrid<pcl::PCLPointCloud2> sor;
 sor.setInputCloud (cloud);
 sor.setLeafSize (0.01f, 0.01f, 0.01f);
 sor.filter (*cloud_filtered);
//创建筛选对象
体素网格;
sor.setInputCloud(云);
sor.setLeafSize(0.01f,0.01f,0.01f);
sor.filter(*已过滤的云);

是的,只需再次调用setInputCloud()以获得新的云,然后再调用filter()

或者,为了简单起见,您可以将其全部放在一个函数中,每次都创建一个新对象

voxelFilter(cloud)
{
   // Create the filtering object
   pcl::VoxelGrid<pcl::PCLPointCloud2> sor;
   sor.setInputCloud (cloud);
   sor.setLeafSize (0.01f, 0.01f, 0.01f);
   sor.filter (*cloud_filtered);
   return cloud_filtered;
}
体素过滤器(云)
{
//创建过滤对象
体素网格;
sor.setInputCloud(云);
sor.setLeafSize(0.01f,0.01f,0.01f);
sor.filter(*已过滤的云);
返回已过滤的云;
}