在 MATLAB 中添加图像噪声和进行滤波通常使用以下函数:
-
添加噪声:可以使用
imnoise
函数向图像添加各种类型的噪声,如高斯噪声、椒盐噪声等。 -
滤波:可以使用各种滤波器对图像进行滤波处理,例如中值滤波、高斯滤波等。
下面是一个示例代码,演示如何在 MATLAB 中添加高斯噪声、椒盐噪声,并使用中值滤波和高斯滤波进行滤波:
% 读取图像
image = imread('lena.png');
% 添加高斯噪声
noisy_image_gaussian = imnoise(image, 'gaussian', 0, 0.02);
% 添加椒盐噪声
noisy_image_salt_and_pepper = imnoise(image, 'salt & pepper', 0.05);
% 中值滤波
filtered_image_median_gaussian = medfilt2(noisy_image_gaussian, [3, 3]);
filtered_image_median_salt_and_pepper = medfilt2(noisy_image_salt_and_pepper, [3, 3]);
% 高斯滤波
filtered_image_gaussian_gaussian = imgaussfilt(noisy_image_gaussian, 2);
filtered_image_gaussian_salt_and_pepper = imgaussfilt(noisy_image_salt_and_pepper, 2);
% 显示结果
subplot(3, 3, 1);
imshow(image);
title('Original Image');
subplot(3, 3, 2);
imshow(noisy_image_gaussian);
title('Gaussian Noisy Image');
subplot(3, 3, 3);
imshow(noisy_image_salt_and_pepper);
title('Salt & Pepper Noisy Image');
subplot(3, 3, 4);
imshow(filtered_image_median_gaussian);
title('Median Filter (Gaussian Noise)');
subplot(3, 3, 5);
imshow(filtered_image_median_salt_and_pepper);
title('Median Filter (Salt & Pepper Noise)');
subplot(3, 3, 6);
imshow(filtered_image_gaussian_gaussian);
title('Gaussian Filter (Gaussian Noise)');
subplot(3, 3, 7);
imshow(filtered_image_gaussian_salt_and_pepper);
title('Gaussian Filter (Salt & Pepper Noise)');
说明:
-
添加噪声: 使用
imnoise
函数向原始图像添加高斯噪声和椒盐噪声。 -
滤波: 分别使用
medfilt2
函数进行中值滤波,使用imgaussfilt
函数进行高斯滤波。 -
显示结果: 将原始图像、添加噪声后的图像以及经过中值滤波和高斯滤波处理后的图像在多个子图中进行显示,以便进行对比观察。