Matlab给三维点云添加高斯噪声和随机噪声

写在前面

       在我们进行点云配准一类的模拟实验时,第一步就是对原始点云进行适当的RT变换,并添加一定的噪声,得到测量点云,然后才可以用我们的算法去进行后面的配准操作。在添加噪声这一块,matlab里并没有特定的函数,因此需要我们在了解噪声原理的基础上,利用简洁的代码实现。

       鉴于网上搜索高斯噪声要么是二维的实现,要么是c语言实现,鲜有针对三维点云的matlab实现源码,笔者分享一下自己的实现过程,供新手参考。

高斯噪声的定义

高斯分布,也称正态分布,又称常态分布,记为N(μ,σ^2),其中μ,σ^2为分布的参数,分别为高斯分布的期望和方差。当有确定值时,p(x)也就确定了,特别当μ=0,σ^2=1时,X的分布为标准正态分布

所谓高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。

Matlab实现

a=ptCloud0.Location;
m=max(a);
n=min(a);
sigma = 0.025;%标准差
mean = n+ (m-n)/2;%均值
ss = mean +sigma*randn(10000,3);%10000个噪声点
ptCloudA = pointCloud([a;ss]);
figure
pcshow(ptCloudA);
title('Noisy Data');

效果如图

image

随机噪声

顾名思义,遵循随机分布

代码实现更加简单,注意ss = n+(m-n)* rand(10000,3);此时不再是randn

效果如图

image

 

猜你喜欢

转载自www.cnblogs.com/Keenster/p/10500695.html