一、高斯噪声介绍
高斯噪声是指在傅里叶变换下呈现高斯性质的噪声,又被称为白噪声,是自然、社会科学和其他领域中最常见的一种随机噪声。在数字信号处理中,高斯噪声是模拟信号转为数字信号时产生的噪声信号,由于其特定的统计特性被广泛地应用于数字图像处理领域中。
在matlab中,我们可以使用内置函数“imnoise”来为图像添加高斯噪声。
二、imnoise添加高斯噪声
以下是示例代码,演示如何使用imnoise添加高斯噪声:
% 载入原始图像 I = imread('lena.tif'); % 添加高斯噪声 J = imnoise(I,'gaussian',0,0.025); % 显示原始图像和添加噪声后的图像 subplot(1,2,1), imshow(I), title('Original image'); subplot(1,2,2), imshow(J), title('Image with Gaussian noise');
imnoise函数调用格式为:
J = imnoise(I,'gaussian',m,n)其中I表示原始图像,在此例中为'lena.tif'。'gaussian'表示添加的噪声类型为高斯噪声。m和n分别表示噪声的均值和方差。在此例中,均值为0,方差为0.025。
三、自定义高斯噪声
如果要自定义高斯噪声,可以使用一些基本的数学和matlab函数。下面是一个示例代码,演示如何自定义高斯噪声:
% 载入原始图像 I = imread('lena.tif'); % 定义均值和方差 m = 0; v = 0.025; % 计算噪声 G = m + sqrt(v)*randn(size(I)); % 将噪声添加到图像中 J = im2double(I) + G; % 显示原始图像和添加自定义高斯噪声后的图像 subplot(1,2,1), imshow(I), title('Original image'); subplot(1,2,2), imshow(J), title('Image with custom Gaussian noise');
在此示例中,我们使用randn函数生成一个与原始图像相同尺寸的高斯分布的噪声G。然后,我们将噪声添加到原始图像的亮度值中,通过im2double函数将原始图像转换为double类型,以便进行数学运算。
四、高斯噪声的去噪
在数字图像处理中,去噪是一个重要的步骤。matlab中提供了许多去噪函数,可以使用这些函数减少高斯噪声。以下是一些常用的去噪函数:
1) medfilt2:中值滤波器使用方形掩模计算每个像素的中值,以减少高斯噪声。以下是示例代码:
% 载入原始图像和添加噪声后的图像 I = imread('lena.tif'); J = imnoise(I,'gaussian',0,0.025); % 使用中值滤波器进行去噪 K = medfilt2(J,[3 3]); % 显示原始图像、添加噪声后图像、去噪后图像 subplot(1,3,1), imshow(I), title('Original image'); subplot(1,3,2), imshow(J), title('Image with Gaussian noise'); subplot(1,3,3), imshow(K), title('Denoised image with median filter');
medfilt2使用方式如下:
K = medfilt2(J,[m n])其中J为需要去噪的图像,[m n]为掩模大小。
2) wiener2:维纳滤波器是一种线性滤波器,用于消除图像的噪声。以下是示例代码:
% 载入原始图像和添加噪声后的图像 I = imread('lena.tif'); J = imnoise(I,'gaussian',0,0.025); % 使用维纳滤波器进行去噪 K = wiener2(J,[5 5]); % 显示原始图像、添加噪声后图像、去噪后图像 subplot(1,3,1), imshow(I), title('Original image'); subplot(1,3,2), imshow(J), title('Image with Gaussian noise'); subplot(1,3,3), imshow(K), title('Denoised image with Wiener filter');
wiener2使用方式如下:
K = wiener2(J,[m n])其中J为需要去噪的图像,[m n]为PSF大小(即点扩散函数)。
五、总结
在本文中,我们简单介绍了高斯噪声,并演示了如何在matlab中添加和去除图像中的高斯噪声。使用imnoise函数可以通过调整不同的参数来模拟各种强度和类型的高斯噪声。同时,我们也介绍了一些matlab内置的去噪函数,包括中值滤波器和维纳滤波器,以减少高斯噪声。