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

写在前面

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

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

高斯噪声的定义

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

所谓高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。注意在模拟测量点云的生成中,这个噪声只是相当于把现有的点移动了一个位置,而不是添加新的点进去。

Matlab实现

a=ptCloudTformed.Location;
s_noise=normrnd(0,0.01,size(a,1),2);%加噪音,其中mean parameter mu = 0, standard deviation parameter sigma = 0.01
s_simulated=a(:,1:2)+s_noise;
ss=[s_simulated,a(:,3)];
ptCloudA = pointCloud(ss);

随机噪声

顾名思义,遵循随机分布

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

效果如图

image

 

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。 作者博客: http://www.cnblogs.com/Keenster E-mail:MinazukiCn@qq.com
原文地址:https://www.cnblogs.com/Keenster/p/10500695.html