编写MATLAB程序,选择Matlab自带图像eight.tif,对其使用运动模糊处理,再在模糊图像中加入高斯噪声,使用维纳(wiener)滤波对其进行去退化处理,显示原始图像、模糊后图像和复原图像。
时间: 2024-02-17 17:03:09 浏览: 73
以下是MATLAB程序:
```matlab
% 读取图像
img = imread('eight.tif');
figure, imshow(img);
title('原始图像');
% 定义运动模糊参数
len = 21;
theta = 11;
% 生成点扩散函数(PSF)
psf = fspecial('motion', len, theta);
% 对图像进行运动模糊处理
blur_img = imfilter(img, psf, 'conv', 'circular');
figure, imshow(blur_img);
title('模糊后图像');
% 加入高斯噪声
noise_var = 0.01;
blur_img = imnoise(blur_img, 'gaussian', 0, noise_var);
figure, imshow(blur_img);
title('加入高斯噪声后的图像');
% 维纳滤波
estimated_nsr = noise_var / var(double(img(:)));
wnr_img = deconvwnr(blur_img, psf, estimated_nsr);
figure, imshow(wnr_img);
title('复原图像');
```
运行程序后,会弹出三个图像窗口,分别显示原始图像、模糊后图像和复原图像。
阅读全文