(九)Filtering 体素下采样
点云样例:
https://raw.github.com/PointCloudLibrary/data/master/tutorials/table_scene_lms400.pcd
以下程序实现对读取的点云进行体素下采样,并将得到的点云保存。
voxel_grid.cpp
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/voxel_grid.h>
int main ()
{
pcl::PCLPointCloud2::Ptr cloud (new pcl::PCLPointCloud2 ());
pcl::PCLPointCloud2::Ptr cloud_filtered (new pcl::PCLPointCloud2 ());
// 读取点云数据
pcl::PCDReader reader;
reader.read ("table_scene_lms400.pcd", *cloud);
std::cerr << "PointCloud before filtering: " << cloud->width * cloud->height
<< " data points (" << pcl::getFieldsList (*cloud) << ")." << std::endl;
// 使用体素大小为1cm的体素下采样滤波器进行滤波
pcl::VoxelGrid<pcl::PCLPointCloud2> sor;
sor.setInputCloud (cloud);
sor.setLeafSize (0.01f, 0.01f, 0.01f);
sor.filter (*cloud_filtered);
std::cerr << "PointCloud after filtering: " << cloud_filtered->width * cloud_filtered->height
<< " data points (" << pcl::getFieldsList (*cloud_filtered) << ")." << std::endl;
// 保存下采样的点云
pcl::PCDWriter writer;
writer.write ("table_scene_lms400_downsampled.pcd", *cloud_filtered,
Eigen::Vector4f::Zero (), Eigen::Quaternionf::Identity (), false);
return (0);
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(voxel_grid)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable (voxel_grid voxel_grid.cpp)
target_link_libraries (voxel_grid ${PCL_LIBRARIES})
编译并运行:
./voxel_grid
PointCloud before filtering: 460400 data points (x y z intensity distance sid).
PointCloud after filtering: 41049 data points (x y z intensity distance sid).
原始点云(460400 个点):

下采样后的点云(41049 个点):












![[职场] 英语面试自我介绍 #微信#笔记#媒体](https://img-blog.csdnimg.cn/img_convert/94d93df1d2f6f638cea4a40fc6f032d0.jpeg)


![[word] word表格两列互换 #学习方法#其他](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Foffice.tqzw.net.cn%2Fd%2Ffile%2Ftitlepic%2Fofficepic%2F18%2F6ile%2FAiAlepic%2Fo69icepic%2F319222.gif&pos_id=1p3TdEy1)


