image – MATLAB:使用imnoise和randn对高斯噪声有什么区别

在MATLAB中添加加性高斯白噪声时,可以使用预定义的函数

J = imnoise(I,'gaussian',M,V) % I is the image to add the noise

默认情况下,零均值(M)和方差(V)0.01.该功能的手册是here.

但是,在各种MATLAB代码中,我还看到通过以下方式将加性高斯噪声添加到图像中

sigma = 10; % standard deviation (STD)

g = I + sigma * randn(size(I)); %add gaussian noise with STD 10

哪个好.现在,我们知道方差的公式,

[![variance=sigma^2][2]][2]

西格玛是性病的地方.因此,根据第二个代码,我有sigma = 10因此,方差(V)应该是100.使用MATLAB imnoise函数的零均值和方差100应该是这样的

J = imnoise(I,'gaussian',0,100)

但是,即使接近第二个代码,也不会产生损坏的图像.图像似乎100%被噪音破坏.这有什么不同?我在这里错过了什么吗?

最佳答案 我看到的主要问题是imnoise函数需要将图像缩放到区间[0,1](另请参阅此
answer).考虑到这一点,方差100是没有意义的.你应该在图像旁边缩放方差,希望一切都有意义.

点赞