非均匀采样信号的恢复matlab,matlab 点云降采样 pcdownsample()

本文介绍了如何使用Point Cloud Library (pcl)中的pcdownsample函数对点云数据进行随机、网格平均和非均匀网格采样,以减少数据量并保持形状特征。通过实例演示了不同方法的使用,并提供了关键参数解读和输出点云对象的说明。
摘要由CSDN通过智能技术生成

**

点云数据降采样 pcdownsample()

**

pcdownsample降采样减少点云数据量:

一、语法:

ptCloudOut = pcdownsample(ptCloudIn, 'random', percentage)

ptCloudOut = pcdownsample(ptCloudIn, 'gridAverage', gridStep)

ptCloudOut = pcdownsample(ptCloudIn, 'nonuniformGridSample', maxNumPoints)

二、描述:

ptCloudOut = pcdownsample(ptCloudIn,'random',percentage)

//random 随机下采样方式;percentage 百分比

//返回一个带有随机采样且没有替换的下采样点云。百分比输入指定返回到输出的输入部分。

ptCloudOut = pcdownsample(ptCloudIn,'gridAverage',gridStep)

//gridAverage平均网格;gridStep网格步长

//使用box grid过滤器返回下采样点云。gridStep输入指定3d框的大小。

ptCloudOut = pcdownsample(ptCloudIn,'nonuniformGridSample',maxNumPoints)

//nonuniformGridSample非均匀网格取样;maxNumPoints最大点数

//使用非均匀盒网格过滤器返回下采样点云。您必须将网格框中的最大点数maxNumPoints设 置为至少6。

三、例子:

一、下采样点云使用网格过滤:

//读取一份点云:

ptCloud = pcread('teapot.ply');

//设置3-D分辨率为(0.1 x 0.1 x 0.1):

gridStep = 0.1;

ptCloudA = pcdownsample(ptCloud,'gridAverage',gridStep);

//可视化下采样数据:

figure;

pcshow(ptCloudA);

//将点云与使用固定步长下采样的数据进行比较:

stepSize = floor(ptCloud.Count/ptCloudA.Count);

indices = 1 : stepSize : ptCloud.Count;

ptCloudB = select(ptCloud, indices);

figure;

pcshow(ptCloudB);

二、从点云中删除冗余点:

//创建一个点云,所有点共享相同的坐标:

ptCloud = pointCloud(ones(100,3));

//将3-D分辨率设置为一个小值:

gridStep = 0.01;

//输出现在只包含一个惟一点:

ptCloudOut = pcdownsample(ptCloud,'gridAverage',gridStep)

三、输入参数

1、随机采样方法(random):

指定为字符串“Random”。这种方法比“gridAverage”下采样方法更有效,尤其是在点云注册之前。

df6a6185d6507484b71ab4f72a224c1b

百分比 – 投入的百分比(percentage(积极的标量)):

输入的百分比,在[0,1]范围内指定为正标量。百分比输入指定函数返回的输入部分。

2、平均网格下采样方法(gridAverage):

指定为字符串“gridAverage”。同一个框中的点被合并到输出中的一个点。它们的颜色和正常属性也相应平均。该方法保留了点云的形状。

该函数为整个点云计算轴向对齐的边界框。边界框被划分为由gridStep指定大小的网格框。每个网格框中的点通过对它们的位置、颜色和法线进行平均合并。

网格步长-网格过滤器的三维框的大小(gridStep(数值)):

用于网格过滤器的三维框的大小,指定为数值。当没有足够的资源构建大型细粒度网格时,增加gridStep的大小。

3、非均匀网格抽样法(nonuniformGridSample):

非均匀网格抽样方法,指定为字符串“非均匀网格抽样”。该方法的最佳用途是,在使用“pointToPlane”度量时,将其作为点云注册的pcregrigid函数的预处理步骤。当您使用“非均变网格采样”算法时,法线是在向下采样之前对原始数据进行计算的。下采样输出保持了更准确的法线。

网格框中的最大点数(maxNumPoints)(整数):

网格框中的最大点数,指定为大于6的整数。该方法从每个框中随机选择一个点。如果输入点云中没有提供normal,则此方法将自动填充ptCloudOut输出中的normal属性。

四、输出参数

ptCloudOut -过滤点云

pointCloud对象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值