去卷积:deconvblind

代码:

I = imread('cameraman.tif');
figure;imshow(I);title('original img');

PSF = fspecial('gaussian',7,10);
Blurredimg = imfilter(I,PSF,'symmetric','conv');
figure;
imshow(Blurredimg);title('blurred img');

underPSF = ones(size(PSF)-4);
[j1,p1] = deconvblind(Blurredimg,underPSF);
figure;
imshow(j1);title('deConvblind img');

underPSF是用来初始输入的预估PSF,这里第一个实验输入的估计PSF比真实PSF少4个像素大小。原始PSF是77大小,预估的PSF是33大小。

结果对比:

在这里插入图片描述
在这里插入图片描述
衣服领肩位置
在这里插入图片描述
在这里插入图片描述
模糊去除的不彻底,相比于模糊图像,模糊的边缘有明显的变窄趋势。

underPSF2 = padarray(underPSF,[4,4],'replicate','both');
[j2,p2] = deconvblind(Blurredimg,underPSF2);
figure;
imshow(j2);title('deConvblind2 img');

结果如下:
在这里插入图片描述

有很明显的振铃效应。

第三个实验:用和原来PSF一样大小的卷积核去卷积。

underPSF3 = padarray(underPSF,[2 2],'replicate','both');
[j3,p3] = deconvblind(Blurredimg,underPSF3);
imshow(j3);title('Deblurring with INITPSF')

结果如下:

在这里插入图片描述
衣领处的细节对比:
在这里插入图片描述
去振铃效应:

1.增加迭代次数30:
在这里插入图片描述

增加一个初始像素权重:
在这里插入图片描述
边界权重等于0的权重:

WEIGHT([1:3 end-(0:2)],:) = 0;
WEIGHT(:,[1:3 end-(0:2)]) = 0;
figure
imshow(WEIGHT)
title('Weight Array')

在这里插入图片描述

[j5,p5_] = deconvblind(I,underPSF3,30,[],weight)

在这里插入图片描述
图像边缘的的振铃得到比较好的抑制,人物边缘的振铃得到一定的抑制。

参考资料:
matlab 教程

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值