博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6、ubuntu16.04 下 pcl的vogelgrid降采样处理 过程
阅读量:4167 次
发布时间:2019-05-26

本文共 2381 字,大约阅读时间需要 7 分钟。

pcl的vogelgrid降采样处理 过程

pcl安装:

PCL可以实现点云栅格化降采样的功能。PCL实现的VoxelGrid是通过将整个空间划分为若干大小相等的三维空间,把空间中的重心点代表整个栅格中的点保留下来,以此来达到实现降采样的目的。

这样处理过的点云的密度将会显著减小,但是能够很好的保留原始的曲面特征。

步骤:

1、新建voxel_grid_filter,voxel_grid_filter文件下新建voxel_grid_filter.cpp 代码见:

#include 
#include
#include
#include
#include
#include
using namespace std;int main(int argc, char** argv) { std::vector
filenames; filenames = pcl::console::parse_file_extension_argument (argc, argv, ".pcd"); pcl::PointCloud
::Ptr cloud(new pcl::PointCloud
); pcl::PointCloud
::Ptr cloud_filtered(new pcl::PointCloud
); // 装载点云数据 pcl::io::loadPCDFile(argv[filenames[0]], *cloud); //输出采样前的点云信息 std::cerr << "PointCloud before filtering: " << cloud->width * cloud->height << " data points (" << pcl::getFieldsList (*cloud) << ")."<
sor;//滤波器处理对象 sor.setInputCloud(cloud);//设置输入点云 //设置滤波器处理时采用的体素大小的参数,体素大小是长宽高均初始化为0.5,可以自己设置改变最后降采样点的数量 sor.setLeafSize(0.50f, 0.50f, 0.50f); sor.filter(*cloud_filtered);//执行下采样,下采样之后的点云数据保存到 cloud_filtered 中 //输出采样后的点云信息 std::cerr << "PointCloud after filtering: " << cloud_filtered->width * cloud_filtered->height << " data points (" << pcl::getFieldsList(*cloud_filtered) << ")."<

2、voxel_grid_filter文件下新建CMakeLists.txt 代码见文件:

cmake_minimum_required(VERSION 2.6 FATAL_ERROR) project(voxel_grid_filter) find_package(PCL 1.2 REQUIRED) include_directories(${PCL_INCLUDE_DIRS})link_directories(${PCL_LIBRARY_DIRS})add_definitions(${PCL_DEFINITIONS}) add_executable (voxel_grid_filter voxel_grid_filter.cpp)target_link_libraries (voxel_grid_filter ${PCL_LIBRARIES})

3、编译:

voxel_grid_filter文件下新建build编译。(在 voxel_grid_filter文件下打开终端跟着做就可以了):

mkdir build   cd build   cmake ..   make    cd ..   build/voxel_grid_filter twoDroneLocalization.pcd

mkdir build

cd build/
cmake …
make #编译
cd …#切换目录
build/voxel_grid_filter twoDroneLocalization.pcd#执行,twoDroneLocalization.pcd可以换成自己的pcd文件,但是要放在voxel_grid_filte下

4、结束:

降采样前:

三维点云降采样前的样子

降采样后:

三维点云降采样后点样子

在这里插入图片描述

从可视化结果,明显也能看出,点的密度大小与整齐程度不同,虽然处理后数据量大大减少,但很明显其所含有的形状特征与空间结构信息与原始点云差不多。

降采样的结果会保存到同文件夹下的 output_downsampled.pcd 中。文件中包含(除了sample_result):
在这里插入图片描述
在voxel_grid_filter下打开终端,输入pcl_viewer twoDroneLocalization.pcd可查看原始点云,
当前文件夹打开终端输入:pcl_viewer output_downsampled.pcd 可查看酱菜样结果。
需要pcd格式文件做实验的话可以留言。

同样优秀的博客推荐:https://blog.csdn.net/weixin_42208807/article/details/109807006

PCl 经典资料:《点云库PCL学习教程》 朱德海

代码:。

你可能感兴趣的文章
Jackson Tree Model Example
查看>>
常用js收集
查看>>
如何防止sql注入
查看>>
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
[转]C语言printf
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
Mysql中下划线问题
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
vue项目打包后无法运行报错空白页面
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
android中SharedPreferences的简单例子
查看>>