图像复原之约束最小二乘方滤波

        图像复原,简单讲,就是恢复图像本来的面貌,但由于各种原因如图像采集过程中出现的误差导致得到的数字图像不清晰,不是我们人眼看到的实物场景那样,因此需要采取技术手段去除图像的不清晰。约束最小二乘方滤波就是其中一种较好的方法。在维纳滤波那一篇讲过,维纳滤波要求未退化图像和噪声的功率谱必须是已知的,通常这两个功率谱很难估计,尽管用一个常数去估计功率谱比,然而并不总是一个合适的解。约束最小二乘方滤波要求噪声的方差和均值,这些参数可通过给定的退化图像计算出来,这是约束最小二乘方滤波的一个重要优点。

        一个图像采集系统输入输出的关系可以表示为g(x,y)=H[f(x,y)]+η(x,y),表达为向量-矩阵形式为g=Hf+η,明确地以矩阵形式来表达问题可以简化复原技术的推导。约束最小二乘方滤波的核心是解决退化函数H对噪声的敏感性问题,而减少噪声敏感性问题的一种方法是以平滑度量的最佳复原为基础的,如图像的二阶导数即拉普拉斯变换。于是,我们找到一个带约束条件的最小准则函数C,定义如下:

                                              (1)

其约束条件为

                                                      (2)

其中,是欧几里德向量范数,是未退化图像的估计。是拉普拉斯算子。求函数C的最小值,便得到最好的平滑效果即最佳复原。怎样找到最小值呢,这里我们采用拉格朗日乘数法,在频率域中,函数C可表示为C=,其中P是拉普拉斯算子的傅里叶变换。则频率域中,拉格朗日函数为

                          L(,λ)=+    (3)

其中N是加性噪声η的傅里叶变换,式(3)对求导,得到的最小值表达式如下:

                                    (4)     

其中,γ=1/λ,H*H的复共轭,求导过程如下


约束最小二乘滤波的MATLAB代码如下

close all;
clear all;
clc;
I = im2double(imread('C:\Program Files\MATLAB\R2013a\bin\work\图像复原\lena.bmp'));
[hei,wid,~] = size(I);
subplot(2,2,1),imshow(I);
title('原图像');
% 模拟运动模糊.
LEN = 21;
THETA = 11;
PSF = fspecial('motion', LEN, THETA);%产生运动模糊算子,即点扩展函数
blurred = imfilter(I, PSF, 'conv', 'circular');
subplot(2,2,2), imshow(blurred); title('模糊图像');
Pf = psf2otf(PSF,[hei,wid]);%退化函数的FFT
% 添加加性噪声
noise_mean = 0;
noise_var = 0.00001;
blurred_noisy = imnoise(blurred, 'gaussian',noise_mean, noise_var);
subplot(2,2,3), imshow(blurred_noisy)
title('带运动模糊和噪声图像')
p = [0 -1 0;-1 4 -1;0 -1 0];%拉普拉斯模板
P = psf2otf(p,[hei,wid]);
gama = 0.001;
If = fft2(blurred_noisy);
numerator = conj(Pf);%conj函数,用于求一个复数的复共轭
denominator = Pf.^2 + gama*(P.^2);
deblurred2 = ifft2( numerator.*If./ denominator );%约束最小二乘方滤波在频率域中的表达式
subplot(2,2,4), imshow(deblurred2)
title('约束最小二乘方滤波后图像');


运行效果如下



  • 25
    点赞
  • 148
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值