您的位置:首页 > 编程语言 > MATLAB

MATLAB中PSF函数进行图像复原

2019-01-08 12:57 330 查看
版权声明:此篇博文为博主心血o(╥﹏╥)o,未经同意请勿转载 https://blog.csdn.net/dyq1995/article/details/86068785

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

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

[code]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、将代码保存在自定义路径下,点击运行按钮,结果如下:

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: