在图像处理中经常需要涉及到加入一定的噪声来模拟真实场景下的图像,本文将介绍如何使用Matlab实现多种噪声图像加噪,并附上相应的源代码。
1、椒盐噪声
椒盐噪声是一种常见的噪声类型,它模拟了图像中出现的黑白点或者像素值受到干扰的情况。
代码:
function img_noise = sp_noise(img, snr)
[m, n] = size(img);
img_noise = img;
for i = 1 : m
for j = 1 : n
rdn = rand;
if rdn < 0.5 * snr
img_noise(i,j) = 0;
elseif rdn > (1 - 0.5 * snr)
img_noise(i,j) = 255;
end
end
end
end
其中,img表示待加噪的原始图像,snr为信噪比。
高斯噪声是一种常见的噪声类型,它符合正态分布,可以模拟实际噪声的统计特性。
代码:
function img_noise = gauss_noise(img, snr)
noise = randn(size(img)); % 生成高斯噪声
noise = noise .* snr * mean(abs(img(:))) + mean(img(:)); % 计算信噪比和均值
img_noise = i