% 读入原图像 img = imread('lena.png');

% 添加高斯噪声 noise_gaussian = imnoise(img, 'gaussian', 0, 0.01);

% 添加椒盐噪声 noise_salt_pepper = imnoise(img, 'salt & pepper', 0.1);

% 3x3均值滤波 filter_3 = 1/9 * ones(3, 3); img_gaussian_filter_3 = imfilter(noise_gaussian, filter_3); img_salt_pepper_filter_3 = imfilter(noise_salt_pepper, filter_3);

% 显示图像 subplot(2,3,1), imshow(img), title('原图像'); subplot(2,3,2), imshow(noise_gaussian), title('高斯噪声'); subplot(2,3,3), imshow(noise_salt_pepper), title('椒盐噪声'); subplot(2,3,5), imshow(img_gaussian_filter_3), title('高斯噪声滤波结果(3x3)'); subplot(2,3,6), imshow(img_salt_pepper_filter_3), title('椒盐噪声滤波结果(3x3)');

% 分别使用5x5和9x9模板进行均值滤波 filter_5 = 1/25 * ones(5, 5); filter_9 = 1/81 * ones(9, 9); img_gaussian_filter_5 = imfilter(noise_gaussian, filter_5); img_salt_pepper_filter_5 = imfilter(noise_salt_pepper, filter_5); img_gaussian_filter_9 = imfilter(noise_gaussian, filter_9); img_salt_pepper_filter_9 = imfilter(noise_salt_pepper, filter_9);

% 显示图像 figure; subplot(2,3,1), imshow(img), title('原图像'); subplot(2,3,2), imshow(noise_gaussian), title('高斯噪声'); subplot(2,3,3), imshow(noise_salt_pepper), title('椒盐噪声'); subplot(2,3,4), imshow(img_gaussian_filter_5), title('高斯噪声滤波结果(5x5)'); subplot(2,3,5), imshow(img_salt_pepper_filter_5), title('椒盐噪声滤波结果(5x5)'); subplot(2,3,6), imshow(img_gaussian_filter_9), title('高斯噪声滤波结果(9x9)');

% 比较图像质量并分析讨论 % 显然,随着模板尺寸的增加,图像变得越来越模糊,但同时也能更好地去除噪声。 % 在实际应用中,需要根据噪声水平和图像细节需要进行权衡,选择适当的模板尺寸进行滤波。

Matlab图像处理:高斯噪声和椒盐噪声的均值滤波实验

原文地址: https://www.cveoy.top/t/topic/nQ6l 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录