我想使用一些过滤器作为'功能'所以我对不同的输入云使用相同的过滤器,即通过不同的云作为参数。例如,体素滤波器(见下文)可以用于不同的输入云。如果我有云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);
答案 0 :(得分:1)
是的,只需再次为新云调用setInputCloud(),然后过滤()。
或者你可以把它全部放在一个函数中,并且为了简单起见每次都创建一个新对象。
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;
}