MATLAB中图像椒盐噪声添加与排序滤波去噪

clear all; close all;
I = imread('cameraman.tif');
I = im2double(I);
I = imnoise(I, 'salt & pepper', 0.01);
J = ordfilt2(I, 1, ones(4,4));
K = ordfilt2(I, 9, ones(3));
figure;
subplot(131);
imshow(I);
title('Original Image with Salt and Pepper Noise');
subplot(132);
imshow(J);
title('Image with Order Filtered (Rank 1)');
subplot(133);
imshow(K);
title('Image with Order Filtered (Rank 9)');

解释:

  • clear all; close all;:清空工作空间中的所有变量并关闭所有图形窗口。

  • I = imread('cameraman.tif');:读取名为cameraman.tif的图像,并赋值给I

  • I = im2double(I);:将图像I的数据类型转换为双精度浮点数,以便进行后续处理。

  • I = imnoise(I, 'salt & pepper', 0.01);:在图像I上添加椒盐噪声,噪声密度为0.01。

  • J = ordfilt2(I, 1, ones(4,4));:使用ordfilt2函数对图像I进行排序滤波,滤波的顺序数为1(最小值滤波),邻域窗口为4x4的均匀矩阵。

  • K = ordfilt2(I, 9, ones(3));:使用ordfilt2函数对图像I进行排序滤波,滤波的顺序数为9(中位数滤波),邻域窗口为3x3的均匀矩阵。

  • figure;:创建一个新的图形窗口。

  • subplot(131); imshow(I);:在第一个子图(1,3,1)中显示添加了椒盐噪声的原始图像I

  • subplot(132); imshow(J);:在第二个子图(1,3,2)中显示使用最小值滤波处理后的图像J

  • subplot(133); imshow(K);:在第三个子图(1,3,3)中显示使用中位数滤波处理后的图像K

拓展:

  1. 保存图像:可以将处理后的图像JK保存为文件。
% 保存处理后的图像
imwrite(uint8(J), 'cameraman_with_min_filtered.png');
imwrite(uint8(K), 'cameraman_with_median_filtered.png');
  1. 调整排序滤波的顺序数:可以尝试使用不同的排序滤波顺序数,来观察对图像去噪效果的影响。

  2. 修改邻域窗口:可以尝试使用不同的邻域窗口,来观察对图像去噪效果的影响。

  3. 分析处理效果:可以进一步分析处理后的图像效果,比如通过计算图像的均值和方差。

  4. 比较不同去噪方法的影响:可以比较不同去噪方法对图像质量的影响,以评估不同方法的效果。

猜你喜欢

转载自blog.csdn.net/weixin_63074242/article/details/145515001
今日推荐