PCL_Tutorial2-4.4.1.1-点云基于体素的降采样

本文介绍了点云处理中的重采样技术,特别是下采样方法。通过体素化降低点云复杂度,减少点的数量,同时保持云的主要特征。文章详细讲解了下采样过程,并提供了代码实现和处理结果的展示。
摘要由CSDN通过智能技术生成

4.4.1.1-点云基于体素的降采样

介绍

Resampling

重采样意味着通过减少(下采样)或增加(上采样)来更改云的点数。 正如我们将看到的,两者都有目的。

Downsampling

像Kinect或Xtion这样的传感器会产生具有307200(640x480)点的云。 新的Kinect已经可以在更高的分辨率下工作。 如果我们要在云的每个点上执行简单的操作,则将是O(n),n是点数。 如果必须将每个点与它的k个最邻近点进行比较,则该点将为O(nk)。 到现在,您可能已经注意到,我向您展示的某些算法需要花费几秒钟才能在PC上运行。 您现在知道为什么了。
重采样意味着通过减少(下采样)或增加(上采样)来更改云的点数。 正如我们将看到的,两者都有目的。
另一种选择是降低云的复杂性,即删除该用途不需要的所有点。 有几种方法可以做到这一点。 您可以从云中修剪所有离群值,然后执行分割以仅提取您感兴趣的部分。 常见的操作也是下采样,这将为您带来一片云,尽管它的得分更少,但从所有意图和目的来看,它都等于原始云。
下采样通过体素化完成。 八叉树部分中解释了体素。 云以所需的分辨率分为多个立方体形区域。 然后,处理每个体素内的所有点,因此仅剩下一个。 最简单的方法是随机选择其中一个,但更准确的方法是计算质心,质心是坐标,该坐标是属于体素的所有点的平均值。
如果使用合理的参数,则降采样将产生足够精确的结果,以降低CPU功耗为代价。

代码详解

#include <pcl/io/pcd_io.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/visualization/cloud_viewer.h> 
int
main(int argc, char** argv)
{
   
	// Objects for storing the point clouds.
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
	pcl::PointCloud<pcl::PointXYZ>::Ptr filteredCloud(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DoubleYuanL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值