MATLAB中PSF函数进行图像复原

今天来介绍一下在MATLAB中如何用真实的PSF函数和噪声强度作为参数进行图像复原,具体如下:

1、首先打开MATLAB,在其主界面的编辑器中写入下列代码:

I=imread('G:\MATLAB\bm.bmp'); %读取原始图像
LEN=31;
%图像的模糊化
THETA=11;
PSF1=fspecial('motion',LEN,THETA);
PSF2=fspecial('gaussian',10,5);
Blurred1=imfilter(I,PSF1,'circular','conv');
Blurred2=imfilter(I,PSF2,'conv');
%模糊化图像加噪
V=.002;
BlurredNoisy1=imnoise(Blurred1,'gaussian',0,V);
BlurredNoisy2=imnoise(Blurred2,'gaussian',0,V);
figure,
subplot(1,3,1);imshow(I)
title(' yunhe ')
%用真实的PSF函数和噪声强度作为参数进行图像复原
NP=V*prod(size(I));
reg1=deconvreg(BlurredNoisy1,PSF1,NP);
reg2=deconvreg(BlurredNoisy2,PSF2,NP);
figure;
subplot(1,3,2);imshow(reg1);
title('Restored1 with NP')
figure;
subplot(1,3,3) ;imshow(reg2);
title('Restored2 with NP')

2、将代码保存在自定义路径下,点击运行按钮,结果如下:

MATLAB中PSF函数进行图像复原_第1张图片

MATLAB中PSF函数进行图像复原_第2张图片

MATLAB中PSF函数进行图像复原_第3张图片

从图中可以看出,图像复原后还是带有一些噪声,但是基本样貌还是类似的,至此,关于用真实的PSF函数和噪声强度作为参数进行图像复原的基本介绍完毕,请大家继续关注!!

你可能感兴趣的:(图像处理)