MATLAB点云处理:点云去噪(pcdenoise)
Posted 没事就要敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB点云处理:点云去噪(pcdenoise)相关的知识,希望对你有一定的参考价值。
1 语法
三种重载
ptCloudOut = pcdenoise(ptCloudIn)
返回删除噪声的点云
[ptCloudOut,inlierIndices,outlierIndices] = pcdenoise(ptCloudIn)
返回删除噪声的点云,并返回内点和外点的索引
[ptCloudOut,___] = pcdenoise(___Name,Value)
使用前面的任何一种语法,使用一个或多个名称、值对参数指定的附加选项
下面对第一个重载函数进行说明
2 ptCloudOut = pcdenoise(ptCloudIn)
废话不多说,直接上代码
代码:
clc;
clear;
% 加载需要去噪的点云
ptCloud_in = pcread('sphere_N.pcd');
% 可视化原始点云
figure;
pcshow(ptCloud_in);
title('含有高斯噪声的点云');
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
hold on;
% 执行第一次去噪
ptCloud_inliers1 = pcdenoise(ptCloud_in);
% 可视化去噪后点云(第一次)
figure;
pcshow(ptCloud_inliers1);
title('第一次去噪后的点云');
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
hold on;
% 执行第二次去噪
ptCloud_inliers = pcdenoise(ptCloud_inliers1);
% 可视化去噪后点云(第二次)
figure;
pcshow(ptCloud_inliers);
title('第二次去噪后的点云');
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
hold on;
% 保存去噪后的点云
pcwrite(ptCloud_inliers,'ptCloud_inliers.pcd','Encoding','binary'); %保存为binary形式的PCD点云
结果展示:
通过结果看出,可以通过执行多次去噪,得到理想的去噪后的点云
参考链接
以上是关于MATLAB点云处理:点云去噪(pcdenoise)的主要内容,如果未能解决你的问题,请参考以下文章