MATLAB图像复原之逆滤波程序代码
时间: 2023-08-23 13:08:24 浏览: 51
以下是一个简单的 MATLAB 图像逆滤波程序代码示例:
```matlab
%% 读取图像并添加模糊和噪声
I = imread('lena.png');
h = fspecial('motion', 20, 45);
J = imfilter(I, h, 'circular', 'conv');
J = imnoise(J, 'gaussian', 0, 0.001);
%% 逆滤波
K = fft2(J);
H = fft2(h, size(I, 1), size(I, 2));
K_hat = K./H;
L = real(ifft2(K_hat));
%% 显示结果
figure
subplot(1,3,1), imshow(I), title('原始图像')
subplot(1,3,2), imshow(J), title('模糊和噪声')
subplot(1,3,3), imshow(L), title('逆滤波恢复')
```
在这个示例中,我们首先读取一张“lena.png”图像,并使用 fspecial 函数创建一个模糊核,然后将其应用于图像 I 上,得到模糊图像 J。接着,我们使用 imnoise 函数向图像 J 添加高斯噪声。
接下来,我们通过对 J 进行傅里叶变换和逆滤波来尝试恢复原始图像。我们首先对 J 进行傅里叶变换,并创建一个与图像 I 相同大小的模糊核的傅里叶变换。然后,我们将 J 的傅里叶变换除以模糊核的傅里叶变换,得到一个逆滤波的估计值 K_hat。最后,我们对 K_hat 进行逆傅里叶变换,得到恢复的图像 L。
最后,我们使用 subplot 函数将原始图像、模糊图像和恢复图像一起显示。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)