在MATLAB中加入加性高斯白噪声时,可以使用预定义的函数。
J = imnoise(I,'gaussian',M,V) % I is the image to add the noise默认情况下,零均值(M)和方差(V) 0.01。这个函数的手册是这里。
然而,在各种MATLAB代码中,我还看到加性高斯噪声是通过以下方式添加到图像中的
sigma = 10; % standard deviation (STD)
g = I + sigma * randn(size(I)); %add gaussian noise with STD 10这很好。现在,我们知道方差公式,
[![variance=sigma^2][2]][2]西格玛是性病的地方。因此,根据第二个代码,我有σ= 10,因此方差(V)应该是100。使用MATLAB的零均值和方差100的无噪声函数应该是这样的。
J = imnoise(I,'gaussian',0,100)然而,这不会产生一个损坏的图像,甚至接近第二个代码。图像似乎100%被噪声破坏。这有什么不同?我是不是漏掉了什么?
发布于 2016-04-13 09:26:58
我看到的主要问题是,imnoise函数期望将图像缩放到间隔[0,1] (也请参阅此回答)。考虑到这一点,100的差异是没有意义的。你应该在图像的旁边缩放方差,希望一切都有意义。
https://stackoverflow.com/questions/36590084
复制相似问题