用matlab分别利用逆滤波和一种改进的逆滤波对大气湍流退化图像进行恢复处理,同屏显示退化图像和恢复图像,计算恢复图像的峰值信噪比 PSNR。
时间: 2023-08-27 13:22:32 浏览: 102
首先,我们需要加载大气湍流退化图像。假设该图像为`degraded_image.png`。
```matlab
degraded_image = imread('degraded_image.png');
imshow(degraded_image);
title('Degraded Image');
```
接下来,我们可以使用逆滤波进行图像恢复。逆滤波的公式为:
```matlab
restored_image = ifft2(fft2(degraded_image)./H);
```
其中,`H`为退化函数的傅里叶变换。
```matlab
H = fft2(degraded_psf, size(degraded_image,1), size(degraded_image,2));
```
其中,`degraded_psf`为大气湍流退化过程中的点扩散函数。
```matlab
degraded_psf = fspecial('motion', 60, 45);
```
这里,我们使用`fspecial`函数创建一个运动模糊的点扩散函数,模拟大气湍流退化过程中的点扩散函数。
接下来,我们可以计算逆滤波恢复后的图像的峰值信噪比 PSNR。
```matlab
psnr_value = psnr(restored_image,original_image);
```
其中,`original_image`为未经过退化的原始图像。
```matlab
original_image = imread('original_image.png');
```
接下来,我们可以同屏显示退化图像和恢复图像,并输出峰值信噪比 PSNR 的值。
```matlab
figure;
subplot(1,2,1);
imshow(degraded_image);
title('Degraded Image');
subplot(1,2,2);
imshow(restored_image,[]);
title(['Restored Image (PSNR=',num2str(psnr_value),' dB)']);
```
以上就是用 matlab 分别利用逆滤波和一种改进的逆滤波对大气湍流退化图像进行恢复处理的步骤。
阅读全文