c++ - 对 PCLPointCloud2 进行下采样,使其井井有条

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

我正在尝试对从 Kinect One 获得的 pcl::PCLPointCloud2 点 进行采样(这是一个有组织的点云:points.width = 512points.height = 424)。通过使用 pcl::VoxelGrid,生成的下采样点云不再有组织(output_points.height = 1),但我需要对其进行组织以进行法线估计。

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

提前谢谢你。

最佳答案

如果您只想对有组织的云进行向下采样,请对其进行迭代并选取行和列中的每个第 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));

    }
}

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

关于c++ - 对 PCLPointCloud2 进行下采样,使其井井有条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48600654/

相关文章:

c++ - 如何将 BSTR 传递给 printf?

c# - 将此 DLL 包含从 VB.net 翻译成 C#

python - 如何使用 openCV python 从文本文档中删除水印?

linux - 该错误的解决方案是什么?重击 : syntax error near unexpected token `newline'

c++ - 无需复制即可将 OpenCV Mat 导入 C++ Tensorflow

c++ - 收到 "vector iterators incompatible"错误

c++ - 在 C++ 中制作迭代器的哈希表

computer-vision - 如何读取Adience benchmark数据(性别年龄分类数据集)?

matlab - 从 Gabor 滤波器制作特征向量进行分类

c++ - Ros:控制台输出