matlab读取一幅图像,为该图像添加噪声(噪声类型、噪声参数自选),利用逆滤波对该图像进行复原,输出原图像、噪声图像、复原后图像,
时间: 2024-02-06 13:02:04 浏览: 69
以下是在 MATLAB 中实现读取一幅图像,为该图像添加噪声,利用逆滤波对该图像进行复原的代码:
```matlab
% 读取图像
I = imread('lena.bmp');
% 显示原图像
figure(1);
subplot(1,3,1);
imshow(I);
title('原图像');
% 添加高斯噪声
I_noisy = imnoise(I, 'gaussian', 0, 0.01);
% 显示噪声图像
subplot(1,3,2);
imshow(I_noisy);
title('噪声图像');
% 利用逆滤波进行复原
h = fspecial('gaussian', [5 5], 0.5); % 高斯滤波器
I_blur = imfilter(I_noisy, h, 'conv', 'same'); % 模糊图像
I_restore = deconvwnr(I_blur, h); % 逆滤波复原
% 显示复原后图像
subplot(1,3,3);
imshow(I_restore);
title('复原后图像');
```
代码中先读取了一幅图像,这里以 Lena 为例。然后使用 `imnoise` 函数向图像中添加高斯噪声,其中噪声强度为 0.01。接着使用 `fspecial` 函数生成一个高斯滤波器,对噪声图像进行模糊处理。最后,利用 `deconvwnr` 函数进行逆滤波复原。
运行上述代码即可得到原图像、噪声图像和复原后图像的显示结果。注意,逆滤波在实际应用中可能会受到多种因素的影响,需要根据具体情况进行调整。
阅读全文