寫在前面
在我們進行點雲配准一類的模擬實驗時,第一步就是對原始點雲進行適當的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
效果如圖