天天看点

点云添加高斯噪音-matlab

clear all;

data=ascread('bun045.asc');%动态
points = data{2};
points=double(points);


[m k]=size(points);
P=zeros(3,1);
Q=zeros(3,1);

%点云重心
for i=1:3
    for j=1:m
        P(i)=points(j,i)+P(i);
    end
end

P=P/m;

%产生噪音
Noise = normrnd(0,0.1,m,2);

%噪音移动到点云的位置处
for i=1:2
    for j=1:m
        Noise(j,i)=Noise(j,i)+P(i);
    end
end%

Noise=[Noise,points(:,3)];
pc=[points;Noise];

%可视化加噪音后的点云
% pcshow(pc)
% ax = pcshow();

%保存点云
[m, k]=size(pc);
fid = fopen('bun045.txt','wt');%此时的静态点云已经是去重心平移后的点云
for i=1:m
    for k=1:3
        fprintf(fid,'%g ',pc(i,k));
    end
    
    fprintf(fid, '\n');
%    fprintf(fid,' %g %g %g\n',80, 167, 73);   % 动态点云存点为绿色
end
fclose(fid);


           

继续阅读