matlab2022a简单程序读入一幅图像,添加高斯噪声;对加入噪声的图像分别使用理想低通滤波、巴特 沃斯低通滤波(n=2)和高斯低通滤波处理,显示原始图像和滤波后的图像,并标注滤波器类型和截止频率。
时间: 2024-02-09 21:10:57 浏览: 145
好的,以下是 Matlab2022a 的程序实现:
```matlab
% 读入一幅图像
I = imread('lena.jpg');
% 显示原始图像
subplot(2, 2, 1);
imshow(I);
title('原始图像');
% 添加高斯噪声
J = imnoise(I, 'gaussian', 0, 0.01);
% 显示加入噪声的图像
subplot(2, 2, 2);
imshow(J);
title('加入高斯噪声的图像');
% 理想低通滤波
D0 = 30; % 截止频率
H = lpfilter('ideal', size(J, 1), size(J, 2), D0);
K = applyfilter(J, H);
% 显示滤波后的图像
subplot(2, 2, 3);
imshow(K, []);
title(sprintf('理想低通滤波(D0=%d)', D0));
% 巴特沃斯低通滤波
D0 = 30; % 截止频率
n = 2; % 阶数
H = lpfilter('btw', size(J, 1), size(J, 2), D0, n);
K = applyfilter(J, H);
% 显示滤波后的图像
subplot(2, 2, 4);
imshow(K, []);
title(sprintf('巴特沃斯低通滤波(D0=%d, n=%d)', D0, n));
% 高斯低通滤波
D0 = 30; % 截止频率
H = lpfilter('gaussian', size(J, 1), size(J, 2), D0);
K = applyfilter(J, H);
% 显示滤波后的图像
figure;
subplot(1, 2, 1);
imshow(J);
title('加入高斯噪声的图像');
subplot(1, 2, 2);
imshow(K, []);
title(sprintf('高斯低通滤波(D0=%d)', D0)));
```
其中,`lpfilter` 函数用于生成不同类型的低通滤波器,`applyfilter` 函数用于将滤波器应用到图像上。
执行该程序后,会生成一幅包含四幅子图的图像,第一幅子图为原始图像,第二幅子图为添加高斯噪声后的图像,第三幅子图为使用理想低通滤波器处理后的图像,第四幅子图为使用巴特沃斯低通滤波器处理后的图像。另外,还会生成一幅包含两幅子图的图像,第一幅子图为添加高斯噪声后的图像,第二幅子图为使用高斯低通滤波器处理后的图像。每幅图像的标题中均包含了滤波器类型和截止频率的信息。
阅读全文