天天看點

點雲添加高斯噪音-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);


           

繼續閱讀