MATLAN图像处理之图像恢复 LC非线性滤波

 

%L-R非线性滤波恢复
%fr=deconvlucy(g,PSF,NUMIT,DAMPAR,WEIGHT);
%g退化的图像  NUMIT迭代的次数  默认10次
%DAMPAR 是标量  指定了结果图像同原图像的偏离阈值
%当像素偏离原值的范围在DAMPAR内,不用再迭代
%这即抑制了这些像素上的噪声,又保存了必要的图像细节
%WEIGHT是一个与g同样大小的数组,它为每一个像素分配一个权重来反映其重量
%例如从某个有缺陷的成像组中得出的一个不良像素最终会被赋以权重值零,从而排除该像素来求解
%这个数组的另一个用处是可以根据平坦区域修正量调整像素的权重。
%当用一个指定的PSF来模拟模糊时,WEIGHT可以哦从计算像素中剔除那些来自图像边界的像素点
%因此 PSF造成的模糊是不同的
%若PSF大小为n*n,则在WEIGHT中用到的零边界宽度是ceil(n/2),默认值是同输入图像g同等大小的一个单位数组
f=checkerboard(8);
subplot(2,2,1)
imshow(pixeldup(f,8))
title('原图')
PSF=fspecial('gaussian',7,10);%产生一个大小7*7 标准变差10的高斯PSF
SD=0.01;
g=imnoise(imfilter(f,PSF),'gaussian',0,SD^2);
subplot(2,2,2)
imshow(g)
title('加噪声')
DAMPAR=10*SD;
LIM=ceil(size(PSF,1)/2);
WEIGHT=zeros(size(g));
WEIGHT(LIM+1 : end-LIM , LIM+1:end-LIM)=1;
%WEWIGHT 数组的大小是64*64 并且有值为0的4像素宽边界,其余的像素都是1
NUMIT=5;%迭代次数
f1=deconvlucy(g,PSF,NUMIT,DAMPAR,WEIGHT);
subplot(2,2,3)
imshow(f1)
title('恢复')
NUMIT=12;%迭代次数
f2=deconvlucy(g,PSF,NUMIT,DAMPAR,WEIGHT);
subplot(2,2,4)
imshow(f2)
title('迭代多次恢复')
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值