MATLAB 给点云添加高斯噪声,随机噪声

原理不讲,直接上代码,亲测绝对可用。

clc;
clear;

% 加载点云
ptCloud = pcread('12.ply');
a=ptCloud.Location;
m=max(a);
n=min(a);
%m=[124 114 -61];%也可以自定义噪声填充范围
%n=[-47 -40 -124];
%这里也可以自定义噪声的填充范围
% 可视化原始点云
figure;
pcshow(ptCloud);
title('原始点云');
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
hold on;

% 添加高斯噪声
mu = 0;         % 均值
sigma = 0.5;    % 标准差
noise = normrnd(mu,sigma,[10000000, 3]);  % 100000个高斯噪声点
ptCloud_N = pointCloud([ptCloud.Location; noise]);  % 原始点云添加高斯噪声

%add random noise 
ss = n+(m-n).*rand(10000,3);%10000个噪声点
ptCloud_R = pointCloud([a;ss]);

% 可视化添加高斯噪声的点云
figure
pcshow(ptCloud_R);
title('添加随机噪声后的点云');
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
hold on;

%可视化添加随机噪声的点云
figure
pcshow(ptCloud_N);
title('添加高斯噪声后的点云');
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
hold on;

% 保存添加高斯噪声的点云
pcwrite(ptCloud_R,'12_R.ply','Encoding','binary');            %保存为binary形式的PLY点云
pcwrite(ptCloud_N,'12_N.ply','Encoding','binary');

你可能感兴趣的:(点云,matlab,python,算法)