图像去模糊(维纳滤波)

在数学应用上,对于运动引起的图像模糊,最简单的方法是直接做逆滤波,但是逆滤波对加性噪声特别敏感,使得回复的图像几乎不可用。最小均方差(维纳)滤波用来去除含有噪声的模糊图像,其目标是找到未污染图像的一个估计,使它们之间的均方差最小,可以去除噪声,同时清晰化模糊图像。

定义

给定一个系统

y(t)=h(t)?x(t)+n(t)

这里,?是卷积符号

  • x(t)是在时间t刻输入的信号(未知)
  • h(t)是一个线性时间不变系统的脉冲响应(已知)
  • n(t)是加性噪声,与x(t)不相关(未知)
  • y(t)是我们观察到的信号

    我们的目标是找出这样的卷积函数g(t),这样我们可以如下得到估计的x(t):

    x^(t)=g(t)?y(t)

    这里x^(t)是x(t)的最小均方差估计。

    基于这种误差度量, 滤波器可以在频率域如下描述

    G(f)=H?(f)S(f)|H(f)|2S(f)+N(f)=H?(f)|H(f)|2+N(f)/S(f)

    这里:

  • G(f)和H(f)是g和h在频率域f的傅里叶变换。
  • S(f)是输入信号x(t)的功率谱。
  • N(f)是噪声的n(t)的功率谱。
  • 上标?代表复数共轭。

    滤波过程可以在频率域完成:

    X^(f)=G(f)?Y(f)

    这里 X^(f)是 x^(t)的傅里叶变换,通过逆傅里叶变化可以得到去卷积后的结果x^(t)。

解释

上面的式子可以改写成更为清晰的形式

G(f)=1H(f)???|H(f)|2|H(f)|2+N(f)S(f)???=1H(f)??|H(f)|2|H(f)|2+1SNR(f)??

这里H(f)是h在频率域f的傅里叶变换。SNR(f)=S(f)/N(f)是信号噪声比。当噪声为零时(即信噪比趋近于无穷),方括号内各项也就等于1,意味着此时刻维纳滤波也就简化成逆滤波过程。但是当噪声增加时,信噪比降低,方括号里面值也跟着降低。这说明,维纳滤波的带通频率依赖于信噪比。

推导

上面直接给出了维纳滤波的表达式,接下来介绍推导过程。

上面提到,维纳滤波是建立在最小均方差,可以如下表示:

e(f)=E|X(f)?X^(f)|2

这里E是期望

如果我们替换表达式中的X^(f),上面可以重新组合成

e(f)=E|X(f)?G(f)Y(f)|2=E|X(f)?G(f)[H(f)X(f)+V(f)]|2=E|[1?G(f)H(f)]X(f)?G(f)V(f)|2

展开二次方,得到下式:

e(f)=[1?G(f)H(f)][1?G(f)H(f)]?E|X(f)|2?[1?G(f)H(f)]G?(f)E{X(f)V?(f)}?G(f)[1?G(f)H(f)]?E{V(f)X?(f)}+G(f)G?(f)E|V(f)|2

然而,我们假设噪声与信号独立无关,这样有

E{X(f)V?(f)}=E{V(f)X?(f)}=0

并且我们如下定义功率谱

S(f)=E|X(f)|2N(f)=E|V(f)|2

这样我们有

e(f)=[1?G(f)H(f)][1?G(f)H(f)]?S(f)+G(f)G?(f)N(f)

为了得到最小值,我们对G(f)求导,令方程等于零。

d(f)dG(f)=G?(f)N(f)?H(f)[1?G(f)H(f)]?S(f)=0

由此最终推出维纳滤波器。

测试

Matlab自带了示例程序,如下

%Read image
I = im2double(imread(‘cameraman.tif‘));
figure,subplot(2,3,1),imshow(I);
title(‘Original Image (courtesy of MIT)‘);

%Simulate a motion blur
LEN = 21;
THETA = 11;
PSF = fspecial(‘motion‘, LEN, THETA);
blurred = imfilter(I, PSF, ‘conv‘, ‘circular‘);
subplot(2,3,2),imshow(blurred);
title(‘Blurred Image‘);

%Restore the blurred image
wnr1 = deconvwnr(blurred, PSF, 0);
subplot(2,3,3),imshow(wnr1);
title(‘Restored Image‘);

%Simulate blur and noise
noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred, ‘gaussian‘, ...
                        noise_mean, noise_var);
subplot(2,3,4),imshow(blurred_noisy)
title(‘Simulate Blur and Noise‘)

%Restore the blurred and noisy image:First attempt
wnr2 = deconvwnr(blurred_noisy, PSF, 0);
subplot(2,3,5);imshow(wnr2);title(‘Restoration of Blurred, Noisy Image Using NSR = 0‘)

%Restore the Blurred and Noisy Image: Second Attempt
signal_var = var(I(:));
wnr3 = deconvwnr(blurred_noisy, PSF, noise_var / signal_var);
subplot(2,3,6),imshow(wnr3)
title(‘Restoration of Blurred, Noisy Image Using Estimated NSR‘);

维纳滤波需要估计图像的信噪比(SNR)或者噪信比(NSR),信号的功率谱使用图像的方差近似估计,噪声分布是已知的。从第一排中可以看出,若无噪声,此时维纳滤波相当于逆滤波,恢复运动模糊效果是极好的。从第二排可以看出噪信比估计的准确性对图像影响比较大的,二排中间效果几乎不可用。

参考阅读

http://en.wikipedia.org/wiki/Wiener_deconvolution 英文维基百科

http://www.owlnet.rice.edu/~elec539/Projects99/BACH/proj2/wiener.html 莱斯大学的项目资料

转载保留声明

作者 日期 联系方式
风吹夏天 2015年5月29日 [email protected]
时间: 05-29

图像去模糊(维纳滤波)的相关文章

视频图像去模糊常用处理方法

视频图像去模糊常用处理方法 随着“平安城市”的广泛建设,各大城市已经建有大量的视频监控系统,虽然监控系统己经广泛地存在于银行.商场.车站和交通路口等公共场所,但是在公安工作中,由于设备或者其他条件的限制,案情发生后的图像回放都存在图像不清晰,数据不完整的问题,无法为案件的及时侦破提供有效线索.经常出现嫌疑人面部特征不清晰,难以辨认,嫌疑车辆车牌模糊无法辨认等问题.这给公安部门破案.法院的取证都带来了极大的麻烦.随着平安城市的推广.各地各类监控系统建设的进一步推进,此类问题会越来越突出. 一.模糊

图像去模糊(约束最小二乘方滤波)

引言 这是图像去模糊的第三篇,接着上节说道逆滤波对噪声特别敏感.约束最小二乘方滤波(Constrained Least Squares Filtering,aka Tikhonov filtration,Tikhonov regularization)核心是H对噪声的敏感性问题.减少噪声敏感新问题的一种方法是以平滑度量的最佳复原为基础的,因此我们可以建立下列约束条件: C=∑0M?1∑0N?1[?2f(x,y)]2 其约束条件为 ||G?HF^||2=||N||2 这里,F^是为退化图像的估计,

图像去模糊(逆滤波)

引言 图像模糊是一种拍摄常见的现象,我曾在图像去模糊(维纳滤波) 介绍过.这里不再详述,只给出物理模型,这里我们仍在频率域表示 G(u,v)=H(u,v)F(u,v)+N(u,v)(1) 其中提到最简单的复原方法是直接做逆滤波(Inverse filter). F^(u,v)=G(u,v)H(u,v)(2) 该除法是阵列操作,即按位除. 在含有噪声情况下,将(1)式两端除以H(u,v) F^(u,v)=F(u,v)+N(u,v)H(u,v)(3) 这里N(u,v)未知,式子表明,即使知道退化函数

图像去模糊

一.模糊模型 G = I*PSF + N I为原图像,PSF是模糊运动函数(模糊核函数),N为噪声 二.一般方法: 1.直接求逆,不实用 2.维纳滤波,配合功率谱函数 3.约束的最小二乘方(正则)滤波 4.盲去卷积方法(R-L方法) 图1.使用L-R算法去模糊,椒盐噪声1e-2,运动模糊9,30 end.

随时更新———个人喜欢的关于模式识别、机器学习、推荐系统、图像特征、深度学习、数值计算、目标跟踪等方面个人主页及博客

目标检測.识别.分类.特征点的提取 David Lowe:Sift算法的发明者,天才. Rob Hess:sift的源代码OpenSift的作者,个人主页上有openSift的下载链接.Opencv中sift的实现.也是參考这个. Koen van de Sande:作者给出了sift,densesift,colorsift等等经常使用的特征点程序.输出格式见个人主页说明,当然这个特征点的算法,在Opencv中都有实现. Ivan Laptev:作者给出了物体检測等方面丰富C\C++源代码,及部

个人喜欢的关于模式识别、机器学习、推荐系统、图像特征等方面个人主页及博客 转

目标检测.识别.分类.特征点的提取 David Lowe:Sift算法的发明者,天才. Rob Hess:sift的源码OpenSift的作者,个人主页上有openSift的下载链接,Opencv中sift的实现,也是参考这个. Koen van de Sande:作者给出了sift,densesift,colorsift等等常用的特征点程序,输出格式见个人主页说明,当然这个特征点的算法,在Opencv中都有实现. Ivan Laptev:作者给出了物体检测等方面丰富C\C++源码,及部分训练好

论文笔记---Deblurring Shaken and Partially Saturated Images

抖动和部分饱和图像去模糊 摘要 我们解决了由相机抖动模糊和饱和或过度曝光的像素退化的图像去模糊的问题.饱和像素对于现有的非盲去模糊算法是一个问题,因为它们不符合图像形成过程是线性的这一假设,并且经常在去模糊输出中造成明显的伪像.我们提出一种包含传感器饱和度的前向模型,并使用它来推导出适当地处理饱和像素的去模糊算法.通过使用这个前向模型以及解释关于去模糊结果中的伪像的原因,我们得到比现有的去模糊算法显着更好的结果.我们进一步提出了前向模型的有效近似,导致显着的加速. 介绍 "抖动"图像去

图像处理与计算机视觉基础,经典以及最近发展

*************************************************************************************************************** 在这里,我特别声明:本文章的源作者是   杨晓冬  (个人邮箱:[email protected]).原文的链接是 http://www.iask.sina.com.cn/u/2252291285/ish.版权归 杨晓冬 朋友所有. 我非常感谢原作者辛勤地编写本文章,并愿意共

图像处理与计算机视觉:图像处理与分析

1. Bilateral Filter Bilateral Filter俗称双边滤波器是一种简单实用的具有保持边缘作用的平缓滤波器,由Tomasi等在1998年提出.它现在已经发挥着重大作用,尤其是在HDR领域. [1998 ICCV] BilateralFiltering for Gray and Color Images [2008 TIP] AdaptiveBilateral Filter for Sharpness Enhancement and Noise Removal 2. Col