MATLAB图像复原系统
1.1选题背景
从历史上来看,数字图像处理研究有很大部分是在图像恢复方面进行的,包括对算法的研究和针对特定问题的图像处理程序的编写。数字图像处理中很多值得注意的成就就是在这个方面取得的。在六十年代中期,去卷积(逆滤波)开始被广泛地应用于数字图像恢复。Nathan用二维去卷积的方法来处理由漫游者、探索者等外星探索发射器得到的图像。在同一个时期,采用PSF(Point Spread Function )的解析模型对望远镜图像中由于大气扰动所造成的模糊进行了去卷积处理。从此以后,去卷积就成了图像恢复的一种标准技术。但是这种方法对于噪声很敏感,在噪声较大的情况下,图像恢复的效果不明显。
大部分图像中,邻近的像素是高度相关的,同时为了减少噪声的干扰。Pratt提出了提高维纳滤波计算的方法[10,11]。但是维纳滤波只是在最小均方意义下的最优方法,针对某个具体图像,它不一定是恢复图像的最好方法。后来canon提出了功率谱均衡滤波器[12],它和维纳滤波器类似,但是在某些情况下,它的恢复性能优于维纳滤波器[13]。在轻微模糊和适度噪声条件下,Andrews和Hunt对逆滤波器、维纳滤波器进行了对比研究[s]。其结果表明:在上述条件下,采用去卷积(逆滤波)效果较差;而维纳滤波器会产生超过人眼所希望的严重的低通滤波效应。Andrews提出一种基于线性代数的图像恢复方法[13,14,15]。它为恢复滤波器的数值计算提供了一个统一的设计思路。这种方法可以适用于各种退化图像的复原,但是由于涉及到的向量和矩阵尺寸都非常大,因此线性代数方法可能无法给出一种高效的实现算法。
对于随空间改变的模糊,一种直接而且有效的恢复方法是坐标变换恢复。其思想就是通过对退化图像进行几何变换,使得到的模糊函数具有空间不变性。然后采用普通的空间不变恢复方法对其进行恢复,再用一个和先前几何变换相反的逆变换将模糊图像恢复为原始图像。利用这种方法, Huang对彗星图像进行了处理[17]。Saw chuk研究了由于非线性运动、像散和像场弯曲造成的退化图像。对于这些随空间变化的退化图像,在所需的几何变换己知的情况下,恢复是相当有效的。由于许多模糊图像系统实际上是非线性系统,把非线性系统简化为线性系统,采用线性恢复方法,虽然简化了计算量和便于实现,但是在某些情况下,恢复出来的图像效果不是很好,于是就提出了非线性图像恢复技术,其中最著名的就是EM算法。EM算法最初是由几个不同的研究者提出的,后来Dempster把他们的思想进行了总结,把相应的算法命名为EM算法,并且证明了它的收敛性。从此以后,EM算法就在不同领域中得到了广泛的发展,其中一个重要的应用领域就是图像恢复。EM算法不一定收敛到全局最优,但是却能稳定的收敛到局部最优,它的最大缺点就是计算量太大。1974年Besag把马尔可夫场引入到图像处理领域中,目前己经在图像恢复、分类、分割等方面得到了广泛应用。MRF本质上是一个条件概率模型,结合贝叶斯准则,把问题归结为求解模型的最大后验概率估计,进而转化为求解最小能量函数的优化组合问题。图像恢复发展到现在,已经有了许多成熟的算法,但是还是存在许多问题,等待着我们去解决。目前图像恢复的最新发展有[l3]:
1)非稳图像复原,即空间可变图像复原。
2)退化视频信号的复原问题,以及摄像机拍照图像复原,这是一个需要进一步研究的领域。
3)运动补偿时空复原滤波,同时将时间相关应用到运动补偿中。
4)“Telemedicine”的出现,远程诊断极大的依赖于远程接受的图像质量,图像恢复在医学领域中有相当重要的作用。
5)模糊PSF的Identification仍然是一个困难的问题,尤其在空间可变的PSF的估计中。
6)空间可变恢复方法,可以利用Wavelets和Markov随机场等方法进行图像恢复,这是一个具有发展潜力的研究方向。
1.2设计目的
图像复原是图像处理中的重要内容,它的主要目的就是改善图像质量,研究如从所得的变质图像中复原出真实图像,或说是研究如何从获得的信息中反演出有关真实目标的信息。造成图像退化或者说使图像模糊的原因很多,如果是因为在摄像时相机和被摄景物之间有相对运动而造成的图像模糊则称为运动模糊。所得到图像中的景物往往会模糊不清,我们称之为运动模糊图像。运动模糊图像在日常生活中普遍存在,给人们的实际生活带来了很多不便。近年来,在数字图像处理领域,关于运动模糊图像的复原处理成为了国内外研究的热点问题之一,也出现了一些行之有效的算法和方法。但是这些算法和方法在不同的情况下,具有不同的复原效果。因为这些算法都是其作者在假定的前提条件下提出的,而实际上的模糊图像,并不一定能够满足这些算法前提,或者只满足其部分前提。作为一个实用的图像复原系统,就得提供多种复原算法,使用户可以根据情况来选择最适当的算法以得到最好的复原效果。图像复原关键是要知道图像退化的过程,即要知道图像退化模型,并据此采取相反的过程以求得原始(清晰)图像。
由此可知,运动造成图像的退化是非常普遍的现象,而在众多的应用领域又需要清晰高质量的图像,所以对于退化后的图像进行复原处理非常具有现实意义。随着机器视觉和计算机主动视觉技术的发展,越来越多的成像系统传感器必然要安装在运动平台上,这为各种运动模糊图像的复原提供了极大的应用空间。旋转运动模糊图像的复原是工作在旋转运动平台的成像系统必然遇到的问题,例如,随弹体(或机体)作高速旋转运动时的弹载(或机载)成像传感器。显然,安装在导引头上的弹载成像传感器随弹体一起作高速旋转运动时,在对目标场景进行成像时,在短曝光时间内,由于成像传感器与目标景物之间有相当大的相对旋转角度,因此所获取的图像模糊是很严重的,这给后继的目标识别工作带来了很大的困难。这就需要运用运动模糊图像的复原技术对退化后的图像进行恢复,从而得到清晰的图像,为进一步处理做好准备。
综上所述,无论在日常生活还是在国防军工领域,运动造成图像模糊现象普遍存在,这给人们生活和航空侦察等造成很多不便,所以很有必要对运动模糊图像的恢复做深入研究。
1.3设计内容
本文主要是关于运动模糊图像复原算法实现及应用的讨论,主要要求有:
1、创建一个仿真运动模糊PSF来模糊一幅图像(图像选择原理)。
2、针对退化设计出复原滤波器,对退化图像进行复原(复原的方法自定)。
3、对退化图像进行复原,显示复原前后图像,对复原结果进行分析,并评价复原算法。
从而提高我们分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法,可以进行数字图像应用处理的开发设计。本文主要研究了直线运动模糊恢复,对相关算法的恢复效果进行了对比分析,给出了相关结论。阐述了直线运动模糊恢复的两种算法:逆滤波法、维纳滤波法。分别介绍了各种算法的原理。并对各种原理分别做了仿真实验,给出了实验结果,比较了各实验效果。
2.1图像退化与复原的定义
数字图像在获取的过程中,由于光学系统的像差、光学成像衍射、成像系统的非线性畸变、摄影胶片的感光的非线性、成像过程的相对运动、大气的湍流效应、环境随机噪声等原因,图像会产生一定程度的退化。因此,必须采取一定的方法尽可能地减少或消除图像质量的下降,恢复图像的本来面目,这就是图像复原,也称为图像恢复。
图像复原是试图利用退化过程的先验知识使已退化的图像恢复本来面目,即根据退化的原因,分析引起退化的环境因素,建立相应的数学模型,并沿着使图像降质的逆过程恢复图像。从图像质量评价的角度来看,图像复原就是提高图像的可理解性。而图像增强的目的是提高视感质量,图像增强的过程基本上是一个探索的过程,它利用人的心理状态和视觉系统去控制图像质量,直到人们的视觉系统满意为止。
对于图像复原,一般采用两种方法。一种方法是对于图像缺乏先验知识的情况下的复原,此时可对退化过程如模糊和噪声建立数学模型,进行数学描述,并进而寻找一种去除或削弱其影响的过程;另一种方法是对原始图像已经知道是那些退化因素引起的图像质量下降过程,来建立数学模型,并依据它对图像退化的影响进行拟合的过程。
2.2图像退化模型
图像复原的关键问题在于建立退化模型。假设输入图像f(x, y)经过某个退化系统h(x, y)后输出的是退化的图像g(x, y)。在退化过程中,引进的随机噪声为加性噪声n(x,y),则图像退化过程模型如图2.2.1。
图2.2.1 图像退化过程模型
其一般表达式为: g(x, y)=h(x,y)*f(x,y) +n(x, y) (2-1)
式中:“*”表示空间卷积。h(x, y)是退化函数的空间函数,它综合了所有退化因素,h(x, y)也称为成像系统的冲击响应或点扩展函数。
对于频域下的退化模型,由于空间域上的卷积等同于频域上的乘积,因此可以把退化模型写成如下的频域表示:
G(u,v)=H(u,v)F(u,v)+N(u,v) (2-2)
式中:G(u,v)、H(u,v)、F(u,v)、N(u,v)分别是g(x, y)、h(x,y)、f(x,y) 、n(x, y)的傅里叶变换。
2.3运动模糊图像复原的方法
为了抑制退化而利用有关退化性质知识的预处理方法为图象复原。多数图象复原方法是基于整幅图象上的全局性卷积法。图象的退化可能有多种原因:光学透镜的残次、光电传感器的非线性、胶片材料的颗粒度、物体与摄像机间的相对运动、不当的焦距、遥感或天文中大气的扰动、照片的扫描等等。图象复原的目标是从退化图象中重构出原始图象。
运动模糊图象的恢复是图象复原的主要分支之一,它的恢复算法有很多种。有些算法虽然有很好的恢复效果,但算法复杂,恢复时间比较长(如最大熵法)。有些算法虽然计算速度较快,但恢复效果不尽人意(如空间域逆向恢复)。下面主要介绍逆滤波复原法和维纳滤波的原理。
2.3.1逆滤波复原法
逆滤波[1]是一种简单直接的图像复原算法,即用退化函数H(u ,v)除退化图像的傅立叶变换G(u ,v)来计算原始图像的傅立叶变换估计
(u ,v):
(2-1)
将
进行傅里叶反变换,就能得到
,也就是复原图像。
以上就是逆滤波算法的基本处理过程。从上式也可以看出,即使知道退化函数,也不能准确地复原被退化的图像。因为N(u ,v)是一个随机函数,它的傅立叶变换未知。当H(u ,v)很小时,N(u ,v)/H(u ,v)会变的很大,这相当于把噪声放大了很多,使得复原图像效果很差。另外,如果H(u ,v)有零点,那么在H(u ,v)零点处,N(u ,v)/H(u ,v)就等于无穷大,所以图像在这些点处无法正确复原。
实际中H (u ,v)会随着u、v与原点距离的增加而迅速减小,而噪声N (u ,v)一般变换缓慢。在这种情况下,恢复只能在与原点较近(接近频域中心)的范围内进行。换句话说,一般情况下逆滤波并不正好是1/H(u ,v),而是u、v的某个函数,可记为M(u ,v)。H(u ,v)常成为恢复转移函数,这样图像退化和恢复模型可用图3-1表示。
图3-1图像退化和恢复模型
一种常见的方法是取M (u ,v)为如下函数:
(2-2)
其中w0的选取原则是将H (u ,v)为零的点去除。这种方法的缺点是恢复结果的振铃效应比较明显。一种改进的方法是取M (u ,v)为:
(2-3)
(2-3) 其k、d均为小于1的常数,而且d选得较小为好。
2.3.2维纳滤波的原理
在大部分图象中,邻近的像素是高度相关的,而距离较远的像素其相关性较弱。由此,我们可以认为典型图象的自相关函数通常随着与原点的距离增加下降。由于图象的功率谱是图象本身自相关函数的傅里叶变换,我们可以认为的功率谱随着频域的升高而下降。
一般地,噪声源往往具有平坦的功率谱,即使不是如此,其随着频率的升而下降的趋势也要比典型图象的功率谱慢得多。因此,可以料想功率谱的低频分以信号为主,然而高频部分则主要被噪声所占据。由于逆滤波滤波器的幅值常随着频率的升高而升高,因此会增强高频部分的噪声。为了克服以上缺点,出了采用最小二乘滤波的方法(维纳滤波)进行模糊图象恢复。
维纳(wiener)滤波可以归于反卷积(或反转滤波)算法一类,它是由Wiener首提出的,并应用于一维信号,并取得很好的效果。以后算法又被引入二维信号理,也取得相当满意的效果,尤其在图象复原领域,由于维纳滤波器的复原效良好,计算量较低,并且抗噪性能优良,因而在图象复原领域得到了广泛的应用并不断得到改进发展,许多高效的复原算法都是以此为基础形成的。
维纳滤波综合了退化函数和噪声统计特性两个方面进行复原处理,维纳滤波是寻找一个滤波器,使得复原后图像
(x,y)与原始图像f(x,y)的均方误差最小,即:
式中E{}为数学期望算子,因此,维纳滤波器也称为最小均方误差滤波器。
在频率域中,有约束复原的一般通用表达式的传递函数为
式中:G(u,v)为退化图像的傅里叶变换;H(u,v)退化函数。
当r=1时,
是维纳滤波器的传递函数,其所得到的估计值是使
,即取最小值时的最优估计;
当r=0时,
是逆滤波器的传递函数,逆滤波器是维纳滤波器的特例。
当
时,得到的估计称为变参量维纳滤波器(也称为约束最小二乘滤波器)。
在MATLAB图像处理工具中,有下面用于实现图像处理的基本函数:
3.1维纳滤波复原
deconvwnr函数可以实现维纳滤波。该函数有3种调用格式(其中,J是复原图像;I是退化图像,它是由于原始图像与点扩散函数PSF卷积和可能的加性噪声引起的退化图像):
该函数的前提是,假设图像退化过程中午噪声,是维纳滤波的特例逆滤波。
该函数的前提是,在滤波中有
噪声比参数选项,当NSR是噪声信号功率比,默认值为0,表示无噪声的情况。
其中:I是退化的原函数,J是去模糊复原函数。NSR是噪声信号功率比,默认值为0,表示无噪声的情况。NCORR和ICORR表示噪声和原始图像的自相关函数。
3.2约束最小二乘滤波复原
用deconvwnr函数实现模糊图像的约束最小二乘滤波复原的调用格式为:
J=deconvwnr(I,PSF)
J=deconvwnr(I,PSF,NP)
J=deconvwnr(I,PSF,NP,LRANGE)
J=deconvwnr(I,PSF,NP,LRANGE,REGOP)
[J,LAGRA]= deconvwnr(I,PSF,…)
其中:I表示输入图像;PSF表示点扩散函数;NP、LRANGE和REGOP是可选参数,分别表示图像的噪声强度、拉氏算子的搜索范围和约束算子。该函数也可以在指定的范围内搜索最优的拉氏算子。函数调用后的返回值J表示恢复后的输出图像,返回值LRANGE表示函数执行时最终使用的拉格朗日乘法算子。
3.3运动模糊图像复原实例
在matlab软件中输入下面程序:
I=imread('fly1.jpg'); %读入清晰原图像
figure(1);imshow(I,[]); %显示原图像
title('原图像');
PSF=fspecial('motion',40,75); %建立二维仿真线性运动滤波器PSF
MF=imfilter(I,PSF,'circular'); %用PSF产生退化图像
noise=imnoise(zeros(size(I)),'gaussian',0,0.001); %产生高斯噪声
MFN=imadd(MF,im2uint8(noise));
figure(2);imshow(MFN,[]); %显示模糊噪声后的图像
title('运动模糊图像');
NSR=sum(noise(:).^2)/sum(MFN(:).^2); %计算信噪比
figure(3);
imshow(deconvwnr(MFN,PSF),[]); %显示逆滤波复原图像
title('逆滤波复原');
figure(4);
imshow(deconvwnr(MFN,PSF,NSR),[]); %显示维纳滤波复原图像
title('维纳滤波复原');
figure(5);imshow(reg1);
title('最小二乘滤波复原');
程序输出结果为:
原图像:
运动模糊图像:
逆滤波复原:
维纳滤波复原:
最小二乘滤波复原:
综合以上三种方法,通过对多幅图像的处理并比较可以看出逆滤波、维纳滤波、处理效果较好,而最小二乘方法处理效果相对较差。而逆滤波主要处理无噪声的运动模糊图像,它是维纳滤波的特例。最小二乘对无噪声图像或是低噪声图像的复原效果较好,但对高噪声的图片处理的效果就很差。
本文研究了模糊图像尤其是水平方向运动模糊图像的退化模型,任意方向的匀速直线运动模糊图像只需要通过坐标旋转至水平方向,其图像特征的描述可由水平匀速直线运动模糊图像类推得出。仿真实现了逆滤波、维纳滤波运动模糊图像复原算法通过对实际模糊图像的复原处理,对各个图像的复原效果分别做了比较。
由于本人的能力有限,对图像复原技术的研究还不够系统、不够深入,无论在理论上,还是在工程应用中,还需要做大量深入、细致的研究工作。因此在这方面的研究还只是个开始,很多地方都需要改进与提高,例如:运动模糊图像的复原大多是对整幅图像进行全局的复原,然而在实际应用中并非完全如此。例如,由于物体运动而产生的相对运动,其运动模糊只出现在物体运动的轨迹上,而背景是清晰的。在这种情况下就不能对全局进行处理,应首先分割出运动模糊区域,然后再进行参数估计,图像复原。如何分割运动模糊区域,分割的依据如何等将成为以后研究工作的一部分。
在完成设计作业的过程中,我对数字图像处理的认识更加清楚,了解到了更多的图像处理方法和思想。选择的几种方法是比较常用的,也是比较有代表性的方法,在利用这四种方法实现运动模糊图像复原的过程中,学到了逆滤波、维纳滤波和有约束最小二乘滤波的特点以及适用的范围。在MATLAB程序实现过程中,调试相应的程序,完成相应的参数设置,并观察不同参数下的图像处理效果,从而加深对各种滤波算法原理和过程的理解。
参考文献
[1] 杨帆. 数字图像处理与分析.北京:北京航空航天大学出版社,2007.10
[2] 余成波.数字图像处理及matlab实现.重庆:重庆大学出版社,2003.6
[3]章毓晋.图像处理与分析.北京:清华大学出版社,1999.
[4]丁晓青.数字图像处理讲义.北京:清华大学,2000.