【Matlab】点云降采样(计算机视觉工具箱)

可视化点云

首先,读取点云:

代码语言:javascript
复制
ptCloud = pcread('teapot.ply');

原始点云如下

网格平均降采样

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

代码语言:javascript
复制
gridStep = 0.1;
ptCloudA = pcdownsample(ptCloud,'gridAverage',gridStep);

可视化降采样点云数据:

代码语言:javascript
复制
figure;
pcshow(ptCloudA);

生成降采样后的点云图如下(示例给的茶壶teapot):

固定步长大小降采样

固定步长大小降采样只能在随机或非均匀网格采样模式下才能使用。

降采样点云与使用固定步长大小降采样的数据进行比较:

代码语言:javascript
复制
stepSize = floor(ptCloud.Count/ptCloudA.Count);
indices = 1:stepSize:ptCloud.Count;
ptCloudB = select(ptCloud, indices);

可视化固定步长降采样点云:

代码语言:javascript
复制
figure;
pcshow(ptCloudB);