点云入门第六章——入门使用VoxelGrid滤波器对点云进行下采样:
原理:
pcl的VoxelGrid在输入点云数据上创建一个3D 体素网格(将体素网格视为空间中的一组微小的 空间三维立方体的集合)。然后,在每个体素(即立方体 框)中,所有存在的点都将用它们的质心进行近似(即下采样)。这种方法比用体素的中心逼近的方法它们要慢一些,但它更准确地表示曲面。

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/voxel_grid.h>using namespace std;
using namespace pcl;
int main (int argc, char** argv)
{pcl::PCLPointCloud2::Ptr cloud(new pcl::PCLPointCloud2());pcl::PCLPointCloud2::Ptr cloud_filtered(new pcl::PCLPointCloud2());//sensor_msgs::PointCloud2::Ptr cloud(new sensor_msgs::PointCloud2());//sensor_msgs::PointCloud2::Ptr cloud_filtered(new sensor_msgs::PointCloud2());// 填入点云数据pcl::PCDReader reader;// 把路径改为自己存放文件的路径reader.read ("table_scene_lms400.pcd", *cloud); // 记住要事先下载这个数据集!std::cerr << "PointCloud before filtering: " << cloud->width * cloud->height << " data points (" << pcl::getFieldsList (*cloud) << ").";// 创建滤波器对象pcl::VoxelGrid<pcl::PCLPointCloud2> sor;sor.setInputCloud(cloud);         //设置滤波对象的需要的点云sor.setLeafSize (0.01f, 0.01f, 0.01f);  //设置滤波创建的体素大小为1cmsor.filter (*cloud_filtered);                //执行滤波处理,存储输出的对象std::cerr << "PointCloud after filtering: " << cloud_filtered->width * cloud_filtered->height << " data points (" << pcl::getFieldsList (*cloud_filtered) << ").";//保存结果pcl::PCDWriter writer;writer.write ("2f.pcd", *cloud_filtered, Eigen::Vector4f::Zero (), Eigen::Quaternionf::Identity (), false);system("pause");return (0);
}

采样之前的数据,点云数量460400
处理之后41049

细节部分

pcl——VoxelGrid滤波器相关推荐

  1. 【PCL】VoxelGrid滤波器下采样

    VoxelGrid滤波器是用体素化网格方法实现下采样的一种常用滤波方法,这里重点学习. 下采样是在保持点云形状的同时减少点云中点的数量:VoxelGrid是通过创建三维体素栅格,用每个体素中所有点的重 ...

  2. PCL voxelgrid实现

    体素滤波器可以达到向下采样同时不破坏点云本身几何结构的功能,但是会移动点的位置. 此外体素滤波器可以去除一定程度的噪音点及离群点.主要功能是用来进行降采样. (1)它的原理是根据输入的点云,首先计算一 ...

  3. [pcl::VoxelGrid::applyFilter] Leaf size is too small for the input dataset. Integer indices would ov

    1. 报错日志: Python-pcl 点云下采样时报错如下: [pcl::VoxelGrid::applyFilter] Leaf size is too small for the input d ...

  4. PCL直通滤波器PassThrough点云滤波

    PassThrough PassThrough是直通滤波器,意思是可以设定一个频带,可以选择保留频带内的或者舍弃频带内的 代码 #include <iostream> #include & ...

  5. 不知道什么时间收集的code

    ///直通滤波 //#include "pch.h" //#include <pcl/point_cloud.h> //#include <pcl/point_t ...

  6. 3D-Lidar点云数据处理

    3D-Lidar点云数据处理 3D-Lidar点云数据处理 原始激光点云数据滤波 点云分割(地面与非地面) 目标聚类 欧式聚类 Add Bounding Boxes 目标跟踪 基础卡尔曼滤波 3D-I ...

  7. PCL之体素网格滤波器--VoxelGrid

    作用:使用体素化网格方法实现下采样,可在保持点云形状特征的情况下减少点云的数量:在提高配准.曲面重建.形状识别等算法的速度. 原理:PCL实现的VoxelGrid类通过输入的点云数据创建一个三维体素栅 ...

  8. PCL教程-点云滤波之体素滤波器(下采样)

    原文链接:Downsampling a PointCloud using a VoxelGrid filter 点云文件下载: table_scene_lms400.pcd 目录 原理 程序代码 PC ...

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

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

最新文章

  1. POJ 3057 Evacuation(二分匹配)
  2. leetcode算法题--1比特与2比特字符
  3. python封装函数、实现将任意的对象序列化到磁盘上_Python系列之lambda、函数、序列化...
  4. Ⅲ:zookeeper之查看节点的状态及其监听器的使用
  5. Win10修改管理员用户名(注册表深度完全修改更改c盘下的用户名)
  6. python是一种动态语言这意味着_Python如何能成为全球最受欢迎的编程语言?该不该学Python?...
  7. solid设计原则_SOLID设计原则
  8. linux模拟dnf,每天学一个 Linux 命令:dnf
  9. Chrome浏览器 js 关闭窗口失效解决方法
  10. mybatis 使用in 查询时报错_为什么使用samtools检查bam质量时报错?
  11. mysql主从错误1007_mysql主从错误:1032
  12. P2272 [ZJOI2007]最大半连通子图
  13. 一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目
  14. mysql--------常用命令
  15. 实验四 用信号量解决进程互斥与同步问题 生产者与消费者问题模拟
  16. 9550电机_电机 9550怎么来的
  17. 公路路基路面回弹弯沉检测技术(转载)
  18. “wait_for“: 不是 “winrt::impl“ 的成员
  19. 80后年轻老板创业心经
  20. Python练习:每月乘坐地铁费用

热门文章

  1. Minecraft Skin
  2. 世界上最美的72个地方
  3. 苹果营收下降,但仍赚钱!
  4. 基于SSM实现的云商城购物系统
  5. Android 开发小仓库
  6. Excel文档生成方案
  7. 计算机高级职称考试襄阳,湖北襄阳2016年职称计算机考试报名时间公布
  8. C语言小函数——atol(自己实现)
  9. 成为数据科学家的第一个project
  10. 智能温室系统来帮忙大棚管理