在 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
函數進行高斯濾波。 -
顯示結果: 將原始圖像、添加噪聲后的圖像以及經過中值濾波和高斯濾波處理后的圖像在多個子圖中進行顯示,以便進行對比觀察。