对PCLPointCloud2进行下采样,使其保持整理

时间:2018-02-03 18:33:37

标签: c++ computer-vision ros point-cloud-library point-clouds

我试图对来自Kinect One的pcl::PCLPointCloud2 points进行缩减采样(这是一个有组织的点云:points.width = 512points.height = 424)。通过使用pcl::VoxelGrid生成的下采样点云不再有条理(output_points.height = 1),但我需要将其组织为正常估计。

是否有任何方法可以对保留有组织的结构进行下采样,或者至少是否可以重新组织VoxelGrid的无组织输出?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您只想对有组织的云进行下采样迭代,并选择行和列中的每个第n个点。如

int scale = 2;
pcl::PointCloud<pcl::your_point_type> down_sampled_cloud; 
down_sampled_cloud.width = original_cloud.width / scale;
down_sampled_cloud.height = original_cloud.height / scale;

for( int ii = 0; ii < original_cloud.height; ii+=scale){
    for( int jj = 0; jj < original_cloud.width; jj+=scale ){
    down_sampled_cloud.push_back(original_cloud.at(ii,jj));

    }
}

无法保证体素网格下采样将保留结构。