当前位置:文档之家› 运动模糊图像复原数字图像处理

运动模糊图像复原数字图像处理

运动模糊图像复原数字图像处理
运动模糊图像复原数字图像处理

目录

1 绪论 (2)

2、图像退化与复原 (3)

2.1 图像降质的数学模型 (4)

2.2匀速直线运动模糊的退化模型 (5)

2.3点扩散函数的确定 (7)

2.3.1典型的点扩散函数 (7)

2.3.2运动模糊点扩散函数的离散化 (8)

3、运动模糊图象的复原方法及原理 (9)

3.1逆滤波复原原理 (9)

3.2维纳滤波复原原理 (10)

4、运动模糊图像复原的实现 (12)

4.1 运动模糊图像复原的实现 (12)

4.2 复原结果比较 (14)

实验小结 (15)

参考文献 (16)

前言

在图象成像的过程中,图象系统中存在着许多退化源。一些退化因素只影响一幅图象中某些个别点的灰度;而另外一些退化因素则可以使一幅图象中的一个空间区域变得模糊起来。前者称为点退化,后者称为空间退化。图象复原的过程无论是理论分析或是数值计算都有特定的困难。但由于图象复原技术在许多领域的广泛应用,因而己经成为迅速兴起的研究热点。

图象复原就是研究如何从所得的变质图象中复原出真实图象,或说是研究如何从获得的信息中反演出有关真实目标的信息。造成图象变质或者说使图象模糊的原因很多,如果是因为在摄像时相机和被摄景物之间有相对运动而造成的图象模糊则称为运动模糊。所得到图象中的景物往往会模糊不清,我们称之为运动模糊图象。运动模糊图象在日常生活中普遍存在,给人们的实际生活带来了很多不便。作为一个实用的图象复原系统,就得提供多种复原算法,使用户可以根据情况来选择最适当的算法以得到最好的复原效果。图象复原关键是要知道图象退化的过程,即要知道图象退化模型,并据此采取相反的过程以求得原始(清晰)象。由于图象中往往伴随着噪声,噪声的存在不仅使图象质量下降,而且也会影响了图象的复原效果。从上面论述可以知道,运动造成图象的退化是非常普遍的现象,所以对于退化后的图象进行复原处理非常具有现实意义。图象复原的目的就是根据图象退化的先验知识,找到一种相应的反过程方法来处理图象,从而尽量得到原来图象的质量,以满足人类视觉系统的要求,以便观赏、识别或者其他应用的需要。

1、绪论

数字图象处理研究有很大部分是在图象恢复方面进行的,包括对算法的研究和针对特定问题的图象处理程序的编写。数字图象处理中很多值得注意的成就就

是在这个方面取得的。

在图象成像的过程中,图象系统中存在着许多退化源。一些退化因素只影响一幅图象中某些个别点的灰度;而另外一些退化因素则可以使一幅图象中的一个空间区域变得模糊起来。前者称为点退化,后者称为空间退化。此外还有数字化、显示器、时间、彩色,以及化学作用引起的退化。总之,使图象发生退化的原因很多,但这些退化现象都可用卷积来描述,图象的复原过程就可以看成是一个反卷积的问题。反卷积属于数学物理问题中的一类“反问题”,反问题的一个共同的重要属性是其病态,即其方程的解不是连续地依赖于观测数据,换句话说,观测数据的微小变动就可能导致解的很大变动。因此,由于采集图象受噪声的影响,最后对于图象的复原结果可能偏离真实图象非常远。由于以上的这些特性,图象复原的过程无论是理论分析或是数值计算都有特定的困难。但由于图象复原技术在许多领域的广泛应用,因而己经成为迅速兴起的研究热点。

本次实验主要在PSF对图像进行运动模糊退化处理的基础上,采用逆滤波、维纳滤波和最小二乘滤波来实现图像的复原。

2、图像退化与复原

数字图像在获取的过程中,由于光学系统的像差、光学成像衍射、成像系统的非线性畸变、摄影胶片的感光的非线性、成像过程的相对运动、大气的湍流效应、环境随机噪声等原因,图像会产生一定程度的退化。因此,必须采取一定的方法尽可能地减少或消除图像质量的下降,恢复图像的本来面目,这就是图像复原,也称为图像恢复。

图像复原与图像增强有类似的地方,都是为了改善图像。但是它们又有着明显的不同。图像复原是试图利用退化过程的先验知识使已退化的图像恢复本来面目,即根据退化的原因,分析引起退化的环境因素,建立相应的数学模型,并沿着使图像降质的逆过程恢复图像。从图像质量评价的角度来看,图像复原

就是提高图像的可理解性。而图像增强的目的是提高视感质量,图像增强的过程基本上是一个探索的过程,它利用人的心理状态和视觉系统去控制图像质量,直到人们的视觉系统满意为止。

图像复原是利用退化现象的某种先验知识,建立退化现象的数学模型,再根据模型进行反向的推演运算,以恢复原来的景物图像。因而,图像复原可以理解为图像降质过程的反向过程。建立图像复原的反向过程的数学模型,就是图像复原的主要任务。经过反向过程的数学模型的运算,要想恢复全真的景物图像比较困难。所以,图像复原本身往往需要有一个质量标准,即衡量接近全真景物图像的程度,或者说,对原图像的估计是否到达最佳的程度。

由于引起退化的因素众多而且性质不同,为了描述图像退化过程所建立的数学模型往往多种多样,而恢复的质量标准也往往存在差异性,因此图像复原是一个复杂的数学过程,图像复原的方法、技术也各不相同。

2.1图像降质的数学模型

图像复原处理的关键问题在于建立退化模型。输入图像f(x, y)经过某个退化系统后输出的是一幅退化的图像。为了讨论方便,把噪声引起的退化即噪声对图像的影响一般作为加性噪声考虑,这也与许多实际应用情况一致,如图像数字化时的量化噪声、随机噪声等就可以作为加性噪声,即使不是加性噪声而是乘性噪声,也可以用对数方式将其转化为相加形式。

原始图像f(x, y) 经过一个退化算子或退化系统H(x, y) 的作

用,再和噪声n(x,y)进行叠加,形成退化后的图像g(x, y)。图2-1表示退化过程的输入和输出的关系,其中H(x, y)概括了退化系统的物理过程,就是所要寻找的退化数学模型。

图2-1 图像的退化模型

数字图像的图像恢复问题可看作是: 根据退化图像g(x , y)和退化算子H(x , y)的形式,沿着反向过程去求解原始图像f(x , y), 或者说是逆向地寻找原始图像的最佳近似估计。图像退化的过程可以用数学表达式写成如下的形式:

g(x, y)=H [f(x, y)]+n(x, y) (2-1)

在这里,n(x, y)是一种统计性质的信息。在实际应用中, 往往假设噪声是白噪声,即它的频谱密度为常数,并且与图像不相关。

在图像复原处理中, 尽管非线性、 时变和空间变化的系统模型更具有普遍性和准确性,更与复杂的退化环境相接近,但它给实际处理工作带来了巨大的困难, 常常找不到解或者很难用计算机来处理。因此,在图像复原处理中, 往往用线性系统和空间不变系统模型来加以近似。这种近似的优点使得线性系统中的许多理论可直接用于解决图像复原问题,同时又不失可用性。

2.2匀速直线运动模糊的退化模型

在所有的运动模糊中,由匀速直线运动造成图象模糊的复原问题更具有一般性和普遍意义。因为变速的、非直线运动在某些条件下可以被分解为分段匀速直线运动。本节只讨论由水平匀速直线运动而产生的运动模糊。

假设图象()y x f ,有一个平面运动,令()t x 0和()t y 0

分别为在x 和y 方向上运动的变化分量,T 表示运动的时间。记录介质的总曝光量是在快门打开后到关闭这段时间的积分。则模糊后的图象为:

H (x , y )f (x , y )g (x , y )

n (x , y )

[]dt t y y t x x f y x g T ?--=000)(,)(),( (2-2)

式中g(x,y)为模糊后的图象。以上就是由于目标与摄像机相对运动造成的图象模糊的连续函数模型。

如果模糊图象是由景物在x 方向上作匀速直线运动造成的,则模糊后图象任意点的值为:

()[]dt y t x x f g T y x ?-=00,,)( (2-3)

式中()t x 0是景物在x 方向上的运动分量,若图象总的位移量为a ,总的时

间为T ,则运动的速率为()t x 0=at/T 。则上式变为:

dt y T at x f y x g T ?-=???????

?0,),( (2-4) 以上讨论的是连续图象,对于离散图象来说,对上式进行离散化得:

t y T at x f y x g L i ?∑-=-=????? ?

?10,),( (2-5) 其中L 为照片上景物移动的像素个数的整数近似值。是每个像素对模糊产生影响的时间因子。由此可知,运动模糊图象的像素值是原图象相应像素值与其时间的乘积的累加。

从物理现象上看,运动模糊图象实际上就是同一景物图象经过一系列的距离延迟后再叠加,最终形成的图象。如果要由一幅清晰图象模拟出水平匀速运动模糊图象,可按下式进行:

∑=-=10

),(1),(L i y x f L y x g (2-6) 这样可以理解此运动模糊与时间无关,而只与运动模糊的距离有关,在这种条件下,使实验得到简化。因为对一幅实际的运动模糊图象,由于摄像机不同,很难知道其曝光时间和景物运动速度。

我们也可用卷积的方法模拟出水平方向匀速运动模糊。其过程可表示为:

),(),(),(y x h y x f y x g *= (2-7)

其中

?????-≤≤=其它0101),(L x L y x h (2-8)

h(x,y)称为模糊算子或点扩散函数,“*”表示卷积,),(y x f 表示原始(清晰)图象,),(y x g 表示观察到的退化图象。

如果考虑噪声的影响,运动模糊图象的退化模型可以描述为一个退化函数和一个加性噪声项),(y x n ,处理一幅输入图象),(y x f 产生一幅退化图象),(y x g 。

),(),(),(),(y x n y x h y x f y x g +*= (2-9)

由于空间域的卷积等同于频率域的乘积,所以式(2-9)的频率域描述为:

),(),(),(),(v u N v u F v u H v u G += (2-10)

式(2-9)中的大写字母项是式(2-10)中相应项的傅里叶变换。

2.3点扩散函数的确定

不同的点扩散函数(PSF )会产生不同的模糊图象。明确的知道退化函数是很有用的,有关它的知识越精确,则复原结果就越好。首先讨论几个典型的点扩散函数。

2.3.1典型的点扩散函数

运动模糊的点扩散函数:假设图象是通过一个具有机械快门的摄像机获得的。摄像机和拍摄物体在快门打开期间T 的相对运动引起物体在图象中的平滑。假设V 是沿x 轴方向的衡常速度,时间TPSF 的傅里叶变换H(u,v)由下式给出:

Vu

vtu ππ)sin(v)H(u,= (2-11) 离焦模糊的点扩散函数:由于焦距不当导致的图象模糊可以用如下函数表

示:

ar J

v u ),(1v)H(u,= (2-12) 其中J 1是一阶Bessel 函数,v u 222r +=,a 是位移。该模型不具有空间不

变性。

大气扰动的点扩散函数:大气的扰动造成的图象模糊在遥感和天文中是需要复原的。它是由大气的不均匀性使穿过的光线偏离引起的,以下给出了数学模型,其表达式为:

()e v u c v u )(,H 2265+-= (2-13)

其中c 是一个依赖扰动类型的变量,通常通过实验来确定。幂

5/6有时用1代替。

当我们得到一幅退化图象的时候,首先要判断其退化类型然后通过已知的先验知识进行恢复。以下的讨论主要针对运动模糊PSF 进行。

2.3.2运动模糊点扩散函数的离散化

对于运动模糊而言,根据相机与目标的相对运动速度,相机的焦距以及相机相对目标的距离等就可以计算出PSF 。例如通过计算得到一幅模糊图片的模糊方向是x=6,y=4,连续的PSF 为见图2.2(a)。

根据式(2-14)和式(2-15),可以得到离散化以后的PSF 如图2.2(b)。可以看到由于离散化的原因PSF 并非是直线。在本文中的PSF 均由此方法获得。

1,,1,0-==???

?????n x x n m y (2-14) 1,,1,0-==????????n y y m n y (2-15)

n :y 方向的模糊点数;m :x 方向的模糊点数。当n>=m 的时候用式(2-14)计算当n

3、 运动模糊图象的复原方法及原理

为了抑制退化而利用有关退化性质知识的预处理方法为图象复原。多数图象复原方法是基于整幅图象上的全局性卷积法。图象的退化可能有多种原因:光学透镜的残次、光电传感器的非线性、胶片材料的颗粒度、物体与摄像机间的相对运动、不当的焦距、遥感或天文气的扰动、照片的扫描等等。图象复原的目标是从退化图象中重构出原始图象。

运动模糊图象的恢复是图象复原的主要分支之一,它的恢复算法有很多种。有些算法虽然有很好的恢复效果,但算法复杂,恢复时间比较长(如最大熵法)。有些算法虽然计算速度较快,但恢复效果不尽人意(如空间域逆向恢复)。

下面介绍逆滤波、维纳滤波和有约束最小二乘滤波三种恢复方法的原理。

3.1逆滤波复原原理

在六十年代中期,逆滤波(去卷积)开始被广泛地应用于数字图象复原。Nathan 用二维去卷积方法来处理由漫游者、探索者等外星探索发射得到的图象。由于和噪声相比,信号的频谱随着频率升高下降较快,因此高频部分主要是噪声。Nathan 采用的是限定逆滤波传递函数最大值的方法。

在同一时期,Harris 采用PSF 的解析模型对望远镜图象总由于大气扰动造成的模糊进行了逆滤波处理,Mcglamery 则采用由实验确定的PSF 来对大气扰动图

象进行逆滤波。从此以后,逆滤波就成了模糊图象复原的一种标准技术。

恢复退化图象最简单的方法是直接逆滤波。在该方法中,用退化函数除退化

图象的傅里叶变换F(u,v)来计算原始图象的傅里叶变换估计),(?v u G

,由式3-1可以得到逆滤波退化公式:

),(),(),(),(?v u H v u N v u F v u G -= (3-1)

这个公式说明逆滤波对于没有被噪声污染的图象很有效,这里不考虑在u ,v 空间的某些位置上当H(u,v)接近0时可能遇到的计算问题,幸运的是忽略这些点在恢复结果中并不会产生可感觉到的影响。但是,如果出现噪声就会引起几个问题:第一,对于H(u,v)幅值比较小的频率处噪声的影响可能变得显著起来。这种状况通常对于高频u ,v 。在实际中,通常H(u,v)幅值衰减得比N(u,v)快得多,因此噪声的影响可能支配整个复原结果。将复原限定在H(u,v)足够大得u ,v 原点处得一个小邻域中,可以克服这个问题。第二个问题针对噪声本身的频谱,我们通常没有充分的有关噪声的信息来足够好地确定N(u,v)。为了克服H(u,v)接近0所引起的问题,在分母中加入一个小的常数k ,将式(3-1)修改为:

k v u H v u N v u G v u F +-=),(),(),(),(? (3-2)

3.2维纳滤波复原原理

在大部分图象中,邻近的像素是高度相关的,而距离较远的像素其相关性较弱。由此,我们可以认为典型图象的自相关函数通常随着与原点的距离增加下降。由于图象的功率谱是图象本身自相关函数的傅里叶变换,我们可以认为的功率谱随着频域的升高而下降。

一般地,噪声源往往具有平坦的功率谱,即使不是如此,其随着频率的升而下降的趋势也要比典型图象的功率谱慢得多。因此,可以料想功率谱的低频分以信号为主,然而高频部分则主要被噪声所占据。由于逆滤波滤波器的幅值常随

着频率的升高而升高,因此会增强高频部分的噪声。为了克服以上缺点,出了采用最小均方误差的方法(维纳滤波)进行模糊图象恢复。

维纳(wiener)滤波可以归于反卷积(或反转滤波)算法一类,它是由Wiener 首提出的,并应用于一维信号,并取得很好的效果。以后算法又被引入二维信号理,也取得相当满意的效果,尤其在图象复原领域,由于维纳滤波器的复原效良好,计算量较低,并且抗噪性能优良,因而在图象复原领域得到了广泛的应用并不断得到改进发展,许多高效的复原算法都是以此为基础形成的。

如果取

R R Q n g 2121

= (3-3)

R g 和R n 分别是图象和噪声的自相关矩阵。即??????=g g E R T g ,?

?????=n n E R T n ,并且都是正定对称矩阵,则有

f H R R H H

g T n g T 1)

(?1-+=-γ (3-4) g R R g

Q n

g ??2121=的模方最小,实际上就意味着使噪声和信号的比对复原图象影响最小。因为图象和噪声的相关矩阵都是把图象当作随机过程来研究,从而描述其统计特性的量,在这里最小二乘方的最佳已经演变成均方误差最小准则下的最佳。

同样根据式(3-4)可求得频域维纳滤波公式如下 ),()

,()

,(),(),(),(1),(?22

v u F v u S v u S v u H v u H v u H v u G g n γ+= (3-5) γ=1时,为标准维纳滤波器;γ≠1时,为含参维纳滤波器。若没有噪声时 即),(n v u S =0,维纳滤波器则退化成理想反滤波器。

实际应用中必须调节γ以满足式(3-4)。因为),(n v u S ,),(g v u S 实际很难求得因此,可以用一个比值k 代替两者之比,从而得到简化的维纳滤波公式

),(),(),(),(1),(?22

v u F k v u H v u H v u H v u G += (3-6) 4、运动模糊图像复原的实现

数字图像在获取的过程中,由于光学系统的像差、光学成像衍射、成像系统的非线性畸变、摄影胶片的感光的非线性、成像过程的相对运动、大气的湍流效应、环境随机噪声等原因,图像会产生一定程度的退化.因此,必须采取一定的方法尽可能地减少或消除图像质量的下降,恢复图像的本来面目,这就是图像复原,也称为图像恢复。

图像复原是试图利用退化过程的先验知识使已退化的图像恢复本来面目,即根据退化的原因,分析引起退化的环境因素,建立相应的数学模型,并沿着使图像降质的逆过程恢复图像。前面讲述的两种运动模糊图像复原方法均可在VC++环境下实现,下面将对每一种方法进行举例。

4.1 运动模糊图像复原的实现

4.1.1、逆滤波法的VC++6.0实现

代码如下:

void CImageProcessingView::OnRestoreInverse()

{

// 图象的逆滤波

// 更改光标形状

BeginWaitCursor();

// 获取文档

CImageProcessingDoc* pDoc = GetDocument();

// 获得图象CDib 类的指针

CDib * pDib = pDoc->m_pDibInit;

// 获得图象的头文件信息

LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;

// 判断是否是8-bpp 位图(这里为了方便,只处理8-bpp 位图的逆滤波)

if (lpBMIH->biBitCount != 8)

{

// 提示用户

MessageBox("目前只支持256色位图的逆滤波!", "系统提示" ,

MB_ICONINFORMATION | MB_OK);

// 返回

return;

}

::DIBInverseFilter(pDib);

// 设置脏标记

pDoc->SetModifiedFlag(TRUE);

// 更新视图

pDoc->UpdateAllViews(NULL);

// 恢复光标

EndWaitCursor();

}

4.1.2、维纳滤波的VC++6.0实现

代码如下:

void CImageProcessingView::OnRestoreWinner()

{

// 图象的维纳滤波

// 更改光标形状

BeginWaitCursor();

// 获取文档

CImageProcessingDoc* pDoc = GetDocument();

// 获得图象CDib类的指针

CDib * pDib = pDoc->m_pDibInit;

// 获得图象的头文件信息

LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;

// 判断是否是8-bpp位图(这里为了方便,只处理8-bpp位图的维纳滤波)if (lpBMIH->biBitCount != 8)

{

// 提示用户

MessageBox("目前只支持256色位图的维纳滤波!", "系统提示" ,

MB_ICONINFORMATION | MB_OK);

// 返回

return;

}

::DIBWinnerFilter(pDib);

// 设置脏标记

pDoc->SetModifiedFlag(TRUE);

// 更新视图

pDoc->UpdateAllViews(NULL);

// 恢复光标

EndWaitCursor();

}

4.2 复原结果比较

4.2.1、逆滤波前后比较

从恢复的图像来看,效果还是可以的。

逆滤波对于没有被噪声污染的图像很有效,但是实际应用中,噪声通常无法计算,因此通常忽略加性噪声,而当噪声存在时,该算法就对噪声有放大作用,如果对一幅有噪声的图像进行恢复,噪声可能占据了整个恢复结果。

4.2.2、维纳滤波前后比

实验小结

本文对比较常用的两种图像恢复算法逆滤波和维纳滤波的实现过程作了较为详细的讲述,通过对图像质量较低的退化图像应用上述算法可以使图像质量得到一定程度的改善,在视觉上可以得到较好的改观。类似的图像恢复算法还有有约束最小平方恢复算法等多种,应视具体情况灵活选择合适的算法以获取最佳的恢复效果。本文所述程序在Windows 98下,由Microsoft Visual C++ 6.0编译通过。

在查找资料的过程中,我对数字图像处理的认识更加清楚,了解到了更多的图像处理方法和思想。选择的几种方法是比较常用的,也是比较有代表性的方法,在利用这种方法实现运动模糊图像复原的过程中,学到了逆滤波、维纳滤波的特点以及适用的围。在VC++程序实现过程中,调试相应的程序,完成相应的参数设置,并观察不同参数下的图像处理效果,从而加深对各种滤波算法原理和过程的理解。

参考文献

[1] 帆. 数字图像处理与分析.:航空航天大学,2007.10

[2] 何东健. 数字图像处理[M]. :电子科技大学,2003、

[3] 罗军辉,平等.MATLAB7.0 在图像处理中的应用[M] . :机械工业,2005

[4] 淑莹,变奠英. VC++图像处理程序设计[M].:清华大学,北方交通大学出版.2003(11).119-135

[5]何斌,马天予,王运坚,朱红莲.Visual C++数字图象处理[M].:人民邮电.2001(4) 4-36.

[6]陆令,周书民.数字图像处理处理方法及程序设计[M].:工程大学.2011(12) 3-19.

[7]凤英,丹培,志国.Visual+C++数字图像处理[M].:电子工业.2008(9)1-57.

[8]丽.经典边缘检测算子比较[D].:信息工程大学.2004(4).3-5

[9]杰.图像边缘检测[J].:软件学报.2004(12).

相关主题
文本预览
相关文档 最新文档