【pcl入门教程滤波系列】之GridMinimum

本文介绍pcl::GridMinimum在点云处理中的应用,通过在X-Y平面划分网格并选取每个网格中的最小Z值点云,有效过滤高程信息,适用于地面点分割。实验展示了不同分辨率下的网格化效果。
简介

  谈及点云体素化是一种点云比较普遍的处理方式,之前的一篇博文【pcl入门教程滤波系列】之VoxelGrid有讲解点云体素化与近似体素化的情况。主要涉及两个函数pcl::VoxelGridpcl::ApproximateVoxelGrid的体素化方式,其中第一个是通过划分体素栅格求取每个栅格里面的点云重心来作为这个栅格的点云代表,而第二个则是依据栅格的中心点来代表该栅格的点云。当然,各有各的用在不同的场景。不知道你是否想过,为什么没有求取栅格中最低点的方法?这样对于划分体素栅格后获取最低点,有助于对地面点分割求取比较重要的一步。很庆幸,pcl::GridMinimum就是用来满足这个需求的。

点云划分网格可视化

  类pcl::GridMinimum就是通过将三维点云在X-Y平面划分网格,然后寻找每个网格中最小的z点云代表该网格。如果网格没有点云,那么不会像pcl::ApproximateVoxelGrid产生中心点代表该网格点云。

代码Demo

  下面的代码就是通过pcl::GridMinimum实现网格化求取最小高程点云的算法示例,比较简单就不多做解释啦。

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/grid_minimum.h>
#include <chrono>

int main(int argc, char** argv)
{
   
   
	pcl::PointCloud<pcl::PointXYZI>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZI>);
	pcl::PointCloud<pcl::PointXYZI>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZI>);

	auto startTime = std::chrono::steady_clock::now
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值