我想指定必须在单个体素中显示的最小点数。 如果点数较少,则应忽略体素。
我知道有功能setMinimumPointsNumberPerVoxel()
(PCL 1.8),但是我不确定它是否按预期工作。
哪个值传递到setMinimumPointsNumberPerVoxel()
都无关紧要。
最后,cloud_filtered
的点数始终保持不变。
PCL VOXEL GRID TUTORIAL中的以下代码经过了一些修改,用于测试:
pcl::PCLPointCloud2::Ptr cloud (new pcl::PCLPointCloud2 ());
pcl::PCLPointCloud2::Ptr cloud_filtered (new pcl::PCLPointCloud2 ());
// Create the filtering object
std::cout << "Points before: " << cloud->width * cloud->height << std::endl;
pcl::VoxelGrid<pcl::PCLPointCloud2> sor;
sor.setInputCloud (cloud);
sor.setMinimumPointsNumberPerVoxel(5);
sor.setLeafSize (0.01f, 0.01f, 0.01f);
sor.filter (*cloud_filtered);
std::cout << "Points after: " << cloud_filtered->width * cloud_filtered->height << std::endl;