使用imnoise后提取噪声向量

时间:2017-05-24 09:22:29

标签: matlab image-processing

我有一个向量,其中我添加了高斯白噪声(零均值和标准差为0.001)。更具体地说,我在MATLAB中使用imnoise函数:

pixel_noisy = imnoise(original_pixel, 'Gaussian', 0, 0.001);

我的问题:有没有办法提取已添加到原始像素的噪声向量?使用imnoise后,噪声向量已自动添加。虽然如此,是否有可能知道这个噪声向量是什么?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

原始图像和噪声图像之间存在以下关系:

pixel_noisy = original_pixel + noise

因此,可以使用减法计算噪声:

noise = original_pixel - pixel_noisy

<强>验证

您可以通过检查噪声是否确实是高斯分布来验证此方法:

n = 100; % size of the image
original_pixel = rand(n, n); % constructs a random image
pixel_noisy = imnoise(original_pixel, 'Gaussian', 0, 0.001); % add noise
noise = pixel_noisy - original_pixel; % calculate the noise

mean = mean2(noise) % check the mean (should be 0)
variance = std2(noise)^2 % check the variance (should be 0.001)

对于较大的n值,meanvariance应该更好地匹配所需的值。