模糊图像处理.docx
《模糊图像处理.docx》由会员分享,可在线阅读,更多相关《模糊图像处理.docx(20页珍藏版)》请在冰点文库上搜索。
![模糊图像处理.docx](https://file1.bingdoc.com/fileroot1/2023-5/24/1e9c91fd-c3af-479e-883b-ae1dd075bd6c/1e9c91fd-c3af-479e-883b-ae1dd075bd6c1.gif)
模糊图像处理
摘要
本文通过对模糊图片模糊因素的分析,发现影响照片清晰度的因素主要有:
光学系统的像差、光学成像衍射、成像系统的非线性畸变、摄影胶片的感光的非线性、成像过程的相对运动、大气的湍流效应、环境随机噪声等。
我们分别采用逆滤波复原、维纳滤波复原、约束最小二乘法的方法对彩色模糊图像分别进行处理,比较得出维纳滤波复原时最佳模型选择;通过维纳滤波复原和除噪处理相结合的方法对黑白模糊图片进行处理,从而得到最终复原图像。
因而得出维纳滤波器是最佳模型。
且将处理过的图片与原图片相比,效果较为显著。
关键字:
模糊图片处理,逆滤波复原原理,维纳滤波复原原理,灰度级,除噪
一、问题重述
在平时摄影中常拍出模糊的照片,另外在刑事侦查、卫星探测等领域,都非常需要将一张由于对焦不准确,而拍出模糊的照片还原成清晰的图像。
给出一种算法,把模糊照片还原成清晰的图像。
我们需要模拟照片出现模糊的原因,将清晰的图片按照一定的模型进行退化和加噪声等模糊处理,之后使用不同的远原理进行复原,对比之后选择好的方法进行操作。
二、问题分析
通过对模糊因素的分析,我们分别采用逆滤波复原、维纳滤波复原、约束最小二乘法的方法对彩色模糊图像进行处理,通过维纳滤波复原和除噪处理相结合的方法对黑白模糊图片进行处理,从而得到最终复原图像。
逆滤波复原滤波器对于没有噪声污染的图片的处理,是很有效的,它是用退化函数除退化图象的傅里叶变换F(u,v)来计算原始图象的傅里叶变换估计
。
由于逆滤波滤波器的幅值常随着频率的升高而升高,因此会增强高频部分的噪声。
为了克服以上缺点,维纳滤波复原则基于其之上采用最小均方误差的方法进行模糊图象恢复。
维纳滤波是反卷积算法的一类,广泛用于一维信号和二维信号的处理,尤其是图像复原领域。
灰度级就是指黑白显示器中显示像素点的亮暗差别,在彩色显示器中表现为颜色的不同,灰度级越多,图像层次越清楚逼真。
灰度级取决于每个像素对应的刷新存储单元的位数和显示器本身的性能。
结构框架如下:
三、模型假设及符号说明
3.1模型假设
1.该图片只是由于运动和噪声影响,造成模糊。
2.所处理的图片规格适当,不超出算法使用范围。
3.2符号说明
f(i,j) 表示图像在位置(i,j)处的亮度值;
f(x,y)表示原图像函数;
H(x,y) 表示图像的退化函数;
n(x,y) 表示白性噪声(即在实际应用过程是一个常数);
g(x,y) 表示退化后的图像函数;
表示图像和噪声的自相关矩阵;
ny方向的模糊点数;
mx方向的模糊点数;
F(u,v)傅里叶变换函数;
估计的傅里叶变化值
四、模型建立与应用
1、数字图像模型
未经任何处理的图像在空间和时间上是连续的二维函数,在计算机里要先对它进行抽样量化,即变为数字图像,之后才可以进行各种处理。
数字图像是一个整数阵列,最基本的表现形式就是矩阵。
如,m*n的数字图像F可以表示为:
其中f(i,j)表示图像在位置(i,j)处的亮度值。
当然,当m或n为1时,此时的F就成了向量了。
2、图像的退化与复原
数字图像在获取的过程中,由于光学系统的像差、光学成像衍射、成像系统的非线性畸变、摄影胶片的感光的非线性、成像过程的相对运动、大气的湍流效应、环境随机噪声等原因,图像会产生一定程度的退化。
因此,必须采取一定的方法尽可能地减少或消除图像质量的下降,恢复图像的本来面目,这就是图像复原,也称为图像恢复。
图像复原是试图利用退化过程的先验知识使已退化的图像恢复本来面目,即根据退化的原因,分析引起退化的环境因素,建立相应的数学模型,并沿着使图像降质的逆过程恢复图像。
从图像质量评价的角度来看,图像复原就是提高图像的可理解性。
图像复原是利用退化现象的某种先验知识,建立退化现象的数学模型,再根据模型进行反向的推演运算,以恢复原来的景物图像。
因而,图像复原可以理解为图像降质过程的反向过程。
建立图像复原的反向过程的数学模型,就是图像复原的主要任务。
经过反向过程的数学模型的运算,要想恢复全真的景物图像比较困难。
所以,图像复原本身往往需要有一个质量标准,即衡量接近全真景物图像的程度,或者说,对原图像的估计是否到达最佳的程度。
由于引起退化的因素众多而且性质不同,为了描述图像退化过程所建立的数学模型往往多种多样,而恢复的质量标准也往往存在差异性,因此图像复原是一个复杂的数学过程,图像复原的方法、技术也各不相同。
2.1图像退化的模型
图像复原处理的关键问题在于建立退化模型。
输入图像f(x,y)经过某个退化系统后输出的是一幅退化的图像。
如图1所示,原始图像f(x,y)经过一个退化算子或退化系统H(x,y)的作用,再和噪声n(x,y)进行叠加,形成退化后的图像g(x,y)。
图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匀速直线运动模糊的退化的模型
在所有的运动模糊中,由匀速直线运动造成图象模糊的复原问题更具有一般性和普遍意义。
因为变速的、非直线运动在某些条件下可以被分解为分段匀速直线运动。
本节只讨论由水平匀速直线运动而产生的运动模糊。
假设图像只是由x轴方向匀速运动造成模糊的情况,在y轴方向或者x、y方向匀速运动的情况可以类推,则图像函数可以写成f(x-x0(t),y)。
这里x0(t)是沿x轴方向运动的分量。
设曝光时间为0≤t≤T,在此期间移动的距离是a,所以x0(t)=at/T。
在此情况下,所形成的模糊图像可以表示为
(2-2)
式中的
是与照片感光灵敏度有关的系数,当前已知g(x,y)和a,需要求出原图像函数f(x,y)。
由于模糊仅仅是在x轴方向,和y轴方向无关。
所以可以按行递推恢复。
当在某一行y=y0时,可以把g(x,y0)和f(x,y0)简写成g(x)和f(x)。
则(2-2)可以简写为:
可以发现,采用递推的方法可以按行求出原始图像的各点像素值。
同样的道理也可以得出在Y轴和X、Y轴同时做匀速直线运动时候的复原图像。
这样可以理解此运动模糊与时间无关,而只与运动模糊的距离有关,在这种条件下,使实验得到简化。
因为对一幅实际的运动模糊图象,由于摄像机不同,很难知道其曝光时间和景物运动速度。
2.3点扩散函数的确定
不同的点扩散函数(PSF)会产生不同的模糊图象。
明确的知道退化函数是很有用的,有关它的知识越精确,则复原结果就越好。
首先讨论几个典型的点扩散函数。
2.3.1典型的点扩散函数
运动模糊的点扩散函数:
假设图象是通过一个具有机械快门的摄像机获得的。
摄像机和拍摄物体在快门打开期间T的相对运动引起物体在图象中的平滑。
假设V是沿x轴方向的衡常速度,时间T内PSF的傅里叶变换H(u,v)由下式给出:
(2-3)
离焦模糊的点扩散函数:
由于焦距不当导致的图象模糊可以用如下函数表示:
(2-4)
其中
是一阶Bessel函数,
,a是位移。
该模型不具有空间不变性。
大气扰动的点扩散函数:
大气的扰动造成的图象模糊在遥感和天文中是需要复原的。
它是由大气的不均匀性使穿过的光线偏离引起的,以下给出了数学模型,其表达式为:
(2-5)
其中c是一个依赖扰动类型的变量,通常通过实验来确定。
幂5/6有时用1代替。
当我们得到一幅退化图象的时候,首先要判断其退化类型然后通过已知的先验知识进行恢复。
以下的讨论主要针对运动模糊PSF进行。
2.3.2运动模糊点扩散函数的离散化
对于运动模糊而言,根据相机与目标的相对运动速度,相机的焦距以及相机相对目标的距离等就可以计算出PSF。
例如通过计算得到一幅模糊图片的模糊方向是x=6,y=4,连续的PSF为见图2(a)。
根据式(2-6)和式(2-7),可以得到离散化以后的PSF如图2.2(b)。
可以看到由于离散化的原因PSF并非是直线。
在本文中的PSF均由此方法获得。
(2-6)
(2-7)
n:
y方向的模糊点数;m:
x方向的模糊点数。
当n>=m的时候用式(2-6)计算当n[]为取整符号。
3、运动模糊图象的复原模型
为了抑制退化而利用有关退化性质知识的预处理方法为图象复原。
多数图象复原方法是基于整幅图象上的全局性卷积法。
图象的退化可能有多种原因:
光学透镜的残次、光电传感器的非线性、胶片材料的颗粒度、物体与摄像机间的相对运动、不当的焦距、遥感或天文中大气的扰动、照片的扫描等等。
图象复原的目标是从退化图象中重构出原始图象。
运动模糊图象的恢复是图象复原的主要分支之一,它的恢复算法有很多种。
有些算法虽然有很好的恢复效果,但算法复杂,恢复时间比较长(如最大熵法)。
有些算法虽然计算速度较快,但恢复效果不尽人意(如空间域逆向恢复)。
下面介绍逆滤波、维纳滤波和有约束最小二乘滤波三种恢复方法的原理。
3.1逆滤波复原
逆滤波(去卷积)开始被广泛地应用于数字图象复原。
由于和噪声相比,信号的频谱随着频率升高下降较快,因此高频部分主要是噪声。
采用的是限定逆滤波传递函数最大值的方法。
在同一时期,Harris采用PSF的解析模型对望远镜图象总由于大气扰动造成的模糊进行了逆滤波处理,Mcglamery则采用由实验确定的PSF来对大气扰动图象进行逆滤波。
从此以后,逆滤波就成了模糊图象复原的一种标准技术。
恢复退化图象最简单的方法是直接逆滤波。
在该方法中,用退化函数除退化图象的傅里叶变换F(u,v)来计算原始图象的傅里叶变换估计
,由式3-1可以得到逆滤波退化公式:
(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)修改为:
(3-2)
3.2维纳滤波复原
在大部分图象中,邻近的像素是高度相关的,而距离较远的像素其相关性较弱。
由此,我们可以认为典型图象的自相关函数通常随着与原点的距离增加下降。
由于图象的功率谱是图象本身自相关函数的傅里叶变换,我们可以认为的功率谱随着频域的升高而下降。
一般地,噪声源往往具有平坦的功率谱,即使不是如此,其随着频率的升而下降的趋势也要比典型图象的功率谱慢得多。
因此,可以料想功率谱的低频分以信号为主,然而高频部分则主要被噪声所占据。
由于逆滤波滤波器的幅值常随着频率的升高而升高,因此会增强高频部分的噪声。
为了克服以上缺点,出了采用最小均方误差的方法(维纳滤波)进行模糊图象恢复。
维纳(wiener)滤波可以归于反卷积(或反转滤波)算法一类,它是由Wiener首提出的,并应用于一维信号,并取得很好的效果。
以后算法又被引入二维信号理,也取得相当满意的效果,尤其在图象复原领域,由于维纳滤波器的复原效良好,计算量较低,并且抗噪性能优良,因而在图象复原领域得到了广泛的应用并不断得到改进发展,许多高效的复原算法都是以此为基础形成的。
如果取
(3-3)
分别是图象和噪声的自相关矩阵。
即
并且都是正定对称矩阵,则有
(3-4)
的模方最小,实际上就意味着使噪声和信号的比对复原图象影响最小。
因为图象和噪声的相关矩阵都是把图象当作随机过程来研究,从而描述其统计特性的量,在这里最小二乘方的最佳已经演变成均方误差最小准则下的最佳。
同样根据式(3-4)可求得频域维纳滤波公式如下
(3-5)
=1时,为标准维纳滤波器;
≠1时,为含参维纳滤波器。
若没有噪声时即
=0,维纳滤波器则退化成理想反滤波器。
实际应用中必须调节
以满足式(3-4)。
因为
实际很难求得因此,可以用一个比值k代替两者之比,从而得到简化的维纳滤波公式
(3-6)
3.3有约束最小二乘复原
由于大多数图象恢复问题都不具有唯一解,或者说恢复具有病态特征。
为了克服这一问题,通常需要在恢复过程中对运算施加某种约束。
设对图象施加某一线性运算Q,求在约束条件
(3-7)
下,使
为最小的
作为原图
的最佳估计。
利用拉格朗日乘数法,先构造一辅助函数:
(3-8)
令
可得:
(3-9)
解之得:
(3-10)
式中
。
把式(3-10)代入式(3-7)中可以证明,
是
的单调递增函数。
因此可以用迭代法求出满足约束条件(3-7)式的待定系数
,首先任取一个
代入(3-10),把求得的
再代入式(3-7),若结果大于
时,便减少
;反之增大
,再重复上述过程,直到约束条件式(3-11)被满足为止(实际求解时,只要能
之差小于某一给定值就可以了)。
把求得的
代入,便最后求得最佳估计
。
我们可以直接从空间域的有约束最小二乘方恢复式(3-10)得到它的频域解
(3-11)
应用有约束最小二乘方恢复方法时,只需有关噪声均值和方差的知识就可对每幅给定的图象给出最佳恢复结果。
4、模型应用
数字图像在获取的过程中,由于光学系统的像差、光学成像衍射、成像系统的非线性畸变、摄影胶片的感光的非线性、成像过程的相对运动、大气的湍流效应、环境随机噪声等原因,图像会产生一定程度的退化.因此,必须采取一定的方法尽可能地减少或消除图像质量的下降,恢复图像的本来面目,这就是图像复原,也称为图像恢复。
图像复原是试图利用退化过程的先验知识使已退化的图像恢复本来面目,即根据退化的原因,分析引起退化的环境因素,建立相应的数学模型,并沿着使图像降质的逆过程恢复图像。
前面讲述的三种运动模糊图像复原方法均可在matlab环境下实现,下面将对每一种方法进行举例。
4.1模糊图片的复原
4.1.1彩色图片的处理结果(编程见附表一):
原图像
逆滤波复原
维纳滤波复原
约束最小二乘法复原
4.1.2黑白图片处理结果(程序见附表二):
复原结果检测:
灰度直方图
从图像的灰度级来看,效果还是可以的,因为这里采用了真实PSF函数来恢复,但是实际生活当中大多数情况下PSF是不知道的,所以要按照具体情况具体分析然后再恢复图像。
综合以上三种方法,通过对多幅图像的处理并比较可以看出逆滤波、维纳滤波、处理效果较好,而最小二乘方法处理效果相对较差。
而逆滤波主要处理无噪声的运动模糊图像,它是维纳滤波的特例。
最小二乘对无噪声图像或是低噪声图像的复原效果较好,但对高噪声的图片处理的效果就很差。
五、模型评价
使用matlab运行所建模型处理模糊图片时,自动将图片信息转化成数据信息,对二维图像进行均匀采样,得到一幅离散化成m*n样本的整数阵列,用矩阵来最直观最简便地描述该数字图像。
模型优点:
(1).从模型对彩色图片的处理结果可以看出,逆滤波器和维纳滤波器的处理结果比最小二乘法的处理结果清晰,而维纳滤波器是基于逆滤波器之上进行改进的一种模型,其均方误差小于逆滤波器的处理结果,二者相比较,维纳滤波器处理彩色图片更为理想。
(2).从模型对黑白图片的处理结果可以看出,维纳滤波器对模糊图片的复原较为理想,
从图像的灰度级对比来看,处理后的图片与原清晰图片的相似程度大,由此可见处理效果符合人的视觉范畴。
(3).程序运行简洁明了,可行性强。
模型缺点:
(1).该模型是在假设只受运动和噪声影响的因素下对模糊照片进行的处理,忽略了像系统的非线性畸变、摄影胶片的感光等众多相关因素,所以在一定范畴上,该模型具有一定的局限性。
(2).清晰只是相对于模糊而言,而与原图片的清晰度还有一定的差距,须进一步对模型改善,以得到更为清晰的图片。
(3).由于没有建立量化的评判标准,对结果的评比过于主观,凭借人肉眼比较,说服力不强。
六、参考文献:
[1].胡海根相对运动的模糊图像复原的算法研究
[2].蔡小华 运动模糊图像恢复方法研究
[3].郝文化 田蕾 董秀芳 《MATLAB图形图像处理应用教程》 中国水利水电出版社
[4].董虎胜匀速直线运动模糊图像的递推恢复方法
附录:
附表一:
彩色图像处理:
I=imread('IMG_0019.JPG');
figure
(1);imshow(I,[]);
title('原图像');
PSF=fspecial('motion',40,75);
MF=imfilter(I,PSF,'circular');
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,NSR),[]);
title('逆滤波复原');
figure(4);
imshow(deconvwnr(MFN,PSF,NSR),[]);
title('维纳滤波复原');
NP=0.002*prod(size(I));
[reg1LAGRA]=deconvreg(MFN,PSF,NP/3.0);
figure(5);imshow(reg1);
title('最小二乘滤波复原');
附表二:
黑白图像:
I=imread('skull.bmp');
figure
(1),subplot(2,2,1);imshow(I,[]);
title('原图像');
PSF=fspecial('motion',40,75);
MF=imfilter(I,PSF,'circular');
noise=imnoise(zeros(size(I)),'gaussian',0,0.001);
MFN=imadd(MF,im2uint8(noise));
NOISEPOWER=0.001*prod(size(I));
subplot(2,2,2);imshow(MFN,[]);
title('运动模糊图');
subplot(2,2,3);imshow(deconvwnr(MF,PSF),[]);
title('维纳滤波复原');
N=deconvwnr(MF,PSF);
n1=wiener2(N);
subplot(2,2,4);imshow(n1,[]);
title('维纳滤波复原除噪');
figure
(2),subplot(2,2,1);imhist(I);
title('原图像直方图');
subplot(2,2,2);imhist(MFN);
title('运动模糊图像直方图');
subplot(2,2,3);imhist(N);
title('维纳滤波复原直方图');
subplot(2,2,4);imhist(n1);
title('维纳滤波复原除噪直方图');