在matlab中读取灰度图像lena.bmp,对其加入均值为0,方差为0.03的高斯噪声,然后用截止频率为30的Gauss低通滤波器做滤波,在一个窗口中按照1行3列的方式分别显示原图像,加噪后的图像及去噪后的图像,并加标题的代码
时间: 2024-12-19 18:21:51 浏览: 59
在MATLAB中,你可以通过以下步骤读取、处理和显示图像:
首先,导入必要的库并读取灰度图像:
```matlab
% 导入所需工具箱
import matlab.io.*
import imageprocessing.*
% 读取 Lena.bmp 灰度图像
img = imread('lena.bmp', 'gray');
```
接着,添加高斯噪声:
```matlab
% 设置高斯噪声的参数
sigma = 0.03;
% 创建高斯噪声矩阵
noise = imnoise(img, 'gaussian', 0, sigma);
```
对图像应用高斯低通滤波:
```matlab
% 设定截止频率为30
cutoff_freq = 30;
% 使用 fspecial 函数创建低通滤波器
filter_kernel = fspecial('gaussian', [50 50], cutoff_freq);
% 应用滤波
filtered_img = imgaussfilt(noise, cutoff_freq);
```
最后,以1行3列的方式显示原始、加噪和去噪后的图像:
```matlab
% 绘制3x1的图像矩阵
figure;
subplot(1, 3, 1), imshow(img, 'InitialMagnification', 'fit'), title('Original Image');
subplot(1, 3, 2), imshow(noise, 'InitialMagnification', 'fit'), title('Noisy Image');
subplot(1, 3, 3), imshow(filtered_img, 'InitialMagnification', 'fit'), title('Filtered (Low-pass) Image');
```
上述代码将创建一个新窗口,其中包含原图、加噪后的图像以及去噪后的图像,每张图像都有相应的标题。
阅读全文
相关推荐

















