作用:使用体素化网格方法实现下采样,可在保持点云形状特征的情况下减少点云的数量;在提高配准、曲面重建、形状识别等算法的速度。

原理:PCL实现的VoxelGrid类通过输入的点云数据创建一个三维体素栅格,然后在每个体素内,用体素中所有点的重心来近似显示体素中其他点,这样该体素内所有点就用一个重心点最终表示,对于所有体素处理后得到过滤后的点云。

效果: 这种方法比用体素中心来逼近的方法更慢,但它对于采样点对应曲面的表示更为准确。

代码展示: 

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/visualization/pcl_visualizer.h>using namespace std;int main() {pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);// 加载点云// 点云文件地址:https://github.com/PointCloudLibrary/data/blob/master/tutorials/table_scene_lms400.pcdpcl::io::loadPCDFile<pcl::PointXYZ>("source/table_scene_lms400.pcd",*cloud);// 创建滤波器对象pcl::VoxelGrid<pcl::PointXYZ> sor;sor.setInputCloud (cloud); //设置需要滤波的点云sor.setLeafSize (0.1f, 0.1f, 0.1f);  //设置滤波时创建的体素体积为0.1m3sor.filter (*cloud_filtered);       //执行滤波处理,并将结果输出cloud_filteredcout << "Cloud after filtering: " << cloud_filtered->points.size() << endl;pcl::visualization::PCLVisualizer::Ptr view(new pcl::visualization::PCLVisualizer("ShowCloud"));// 创建两个视口: 第一个用于显示原始点云, 第二个用于显示滤波后的点云int v1(0);view->createViewPort(0.0, 0.0, 0.5, 1.0, v1);view->setBackgroundColor(0, 0, 0, v1);view->addText("Raw point clouds", 10, 10, "v1_text", v1);int v2(0);view->createViewPort(0.5, 0.0, 1, 1.0, v2);view->setBackgroundColor(0.1, 0.1, 0.1, v2);view->addText("filtered point clouds", 10, 10, "v2_text", v2);view->addPointCloud<pcl::PointXYZ>(cloud, "sample cloud", v1);view->addPointCloud<pcl::PointXYZ>(cloud_filtered, "cloud_filtered", v2);// 设置点云的渲染颜色view->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR, 1, 0, 0, "sample cloud", v1);view->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR, 0, 1, 0, "cloud_filtered", v2);view->addCoordinateSystem(1.0);view->initCameraParameters();while (!view->wasStopped()) {view->spinOnce(100);}return 0;
}

结果展示

PCL之体素网格滤波器--VoxelGrid相关推荐

  1. 【PCL自学:Filtering】PCL中的各类滤波器介绍与使用 (持续更新)

    PCL_filter模块中各类滤波器目录 一.直通滤波器(PassThrough):用于阈值滤除 1.直通滤波器介绍 2.示例代码 二.体素滤波器(VoxelGrid filter):用于下采样 1. ...

  2. PCL超体素分割代码vs2019+pcl1.11.1实现

    文章目录 1.VS代码实现 2.点云数据 3.结果 1.VS代码实现 声明:代可以在vs2019+pcl1.11.1上直接运行:由于没有RGBA数据,在demo点云文件上增加了RGBA信息,验证了代码 ...

  3. PCL——超体素(SuperVoxel)、超体聚类分割

  4. SLAM第12讲 建图实践部分

    1 实践:单目稠密重建 1.1 我们需要下载示例程序所需要的数据集http://rpg.ifi.uzh.ch/datasets/remode_test_data.zip.它提供了一架无人机采集到的单目 ...

  5. 直接激光雷达里程计:基于稠密点云的快速定位

    点云PCL免费知识星球,点云论文速读. 文章:Direct LiDAR Odometry:Fast Localization with Dense Point Clouds 作者:Kenny Chen ...

  6. 基于激光雷达和单目视觉融合的SLAM和三维语义重建

    文章:SLAM and 3D Semantic Reconstruction Based on the Fusion of Lidar and Monocular Vision 作者:Lu Lou, ...

  7. 2022/6/29学习日志

    2.4.1 基于KD-Tree的空间结构 首先根据某一选轴点策略,确定坐标轴维度.(维度?)垂直于坐标轴的平面作为超平面来分割集合,取对应维度的坐标值,求出坐标值的中位数,取中位数对应的点为根节点,用 ...

  8. 经典文献阅读之--DLO

    0. 简介 这篇SLAM论文<Direct LiDAR Odometry: Fast Localization with Dense Point Clouds>作为NASA喷气推进实验室C ...

  9. 一文看懂激光点云滤波处理

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 文章导读 点云滤波通常是点云预处理的第一步,只有将噪声点.离群点. ...

最新文章

  1. 在线qmc0转换mp3工具_如何将M4A格式的音频转换为MP3格式?只需一步搞定
  2. 维特森 VTD72K14 多圈空心角度传感器 角位移传感器
  3. 在linux下安装配置DNS服务器
  4. 在eclipse中反编译并查看jar包的class文件,批量反编译
  5. 【原创】C++变量作用域(三)
  6. Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次
  7. de.hybris.platform.servicelayer.dto.converter.ConversionException
  8. Linux重定向的理解
  9. paypal创建订单后怎么获得id_5步创建Facebook商店(最新版教程)学习如何在Facebook上卖货...
  10. RE2正则表达式引擎资料
  11. 暑假集训 div1 B Derangement 交换数字 思维死角
  12. 平滑滤波器模板尺寸与平滑效果的关系_冲压模具丨折弯尺寸、毛刺、、卯合、滑块不顺的根源...
  13. 推理证明技巧之人肉计算机,四大推理方法搞定高中证明题
  14. 2022-07-12
  15. 一键重启tomcat
  16. 查看ESP32模组中Flash颗粒以及芯片信息
  17. 《神经网络与深度学习》习题答案
  18. 8.9 HITTING SET problem
  19. [生存志] 第145节 班固著汉书
  20. 浏览器在b站等网站看视频无法用鼠标滑轮控制声音

热门文章

  1. python 发送 smtp
  2. .Net程序集强签名详解
  3. asp.net 2.0 中如何让membership接口使用自定义数据库。
  4. 批量自动化配置Dell服务器idrac管理口IP
  5. Linux下超简单的Mysql自动备份+定期删除之前备份文件脚本
  6. 升级到 Android Studio 3.0 + Gradle 4.1 遇到的一些坑及解决方案
  7. log4j不输出日志的解决方案
  8. Storm编译打包过程中遇到的一些问题及解决方法
  9. Android Studio 编译异常Could not execute build using Gradle installation解决办法
  10. JS传值中文乱码解决方案