C++ 下采样PCLPointCloud2保持其有序性

C++ 下采样PCLPointCloud2保持其有序性,c++,computer-vision,ros,point-cloud-library,point-clouds,C++,Computer Vision,Ros,Point Cloud Library,Point Clouds,我正在尝试从Kinect点云(这是一个有组织的点云:points.width=512和points.height=424)中获得的pcl::PCLPointCloud2点样本。通过使用pcl::VoxelGrid生成的下采样点云不再组织(output_points.height=1),但我需要对其进行组织以进行正常估计 是否有任何方法可以减少采样以保持有组织的结构,或者至少可以重新组织体素网格的无组织输出 提前感谢您。如果您只想对组织好的云进行下采样,请在其上迭代,并在行和列中选择每N个点。比如

我正在尝试从Kinect点云(这是一个有组织的点云:
points.width=512
points.height=424
)中获得的
pcl::PCLPointCloud2点
样本。通过使用
pcl::VoxelGrid
生成的下采样点云不再组织(
output_points.height=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));

    }
}
int-scale=2;
点云下采样点云;
down_sampled_cloud.width=原始_cloud.width/比例;
down_sampled_cloud.height=原始_cloud.height/比例;
对于(int ii=0;ii<原始云高度;ii+=比例){
对于(int jj=0;jj

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

为什么说必须组织点云来估计法线?事实并非如此,请参见示例。@mikkola点云精化模块由其他人完成,我无法修改它。它利用积分图像的正态估计来获得更快的结果。所以我真的别无选择,只能在下采样后保留点云的组织结构(下采样也是必要的)。