matlab与图像处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于MATLAB在数字图像复原技术中应用的文献综述
摘要:图像复原技术在图像处理领域中具有非常重要的地位,该技术能够最大程度地恢复图像的本来面貌图像复原技术的重点在于找出导致图像失真的原因,并针对该原因对失真图像进行反处理,以此来获取清晰的图像。文本对四个图像复原算法(维纳滤波算法;约束最小二乘(正则)滤波算法;迭代非线性复原算法;盲解卷积算法)的图像复原原理进行了说明,同时对上述算法进行了仿真实现,并分析了实验的结果。通过仿真出来的结果,我们可以很清楚的看出维纳滤波算法所得到的复原图像比较清晰,但盲解卷积算法在同一情况下得到的复原图像就不太理想。然而,在不知道失真信息的情况下应用盲解算法恢复图像就会得到比较好的效果。本文在对相关图像复原技术文献资料搜集及整理基础上进行梳理及归纳。
关键词:数字图像处理;图像复原;MATLAB
随着计算机技术的迅猛发展,人们对数字图像的依赖日益增强。但是由于设备或环境等因素的影响,我们有时候无法得到令人满意的清晰图像。这时就需要图像复原技术对降晰的图像进行处理。具体来说,就是找出导致图像降晰的机制,并针对该机制对图像进行反处理,最终获得清晰的图像。[1]
数字图像在获取的过程中,由于光学系统的像差、光学成像衍射、成像系统的非线性畸变、摄影胶片的感光的非线性、成像过程的相对运动、大气的湍流效应、环境随机噪声等原因,图像会产生一定程度的退化.因此,必须采取一定的方法尽可能地减少或消除图像质量的下降,恢复图像的本来面目,这就是图像复原,也称为图像恢复。
图像复原是试图利用退化过程的先验知识使已退化的图像恢复本来面目,即根据退化的原因,分析引起退化的环境因素,建立相应的数学模型,并沿着使图像降质的逆过程恢复图像。[2]
文献的梳理与归纳:
(一)数字图像处理的复原[3]
下面介绍一些图像复原的背景,包括进行图像复原的原因和图像复原模型两个方面的内容。
1、影响图像质量的原因
影响图像质量的因素主要有下面一些:
1、图像捕获过程中镜头发生了移动,或者暴光时间过长;
2、场景位于焦距以外、使用了广角镜、大气干扰或短时间的暴光导致捕获到的光子
减少;
3、供焦显微镜中出现散光变形。
2、图像复原模型
一幅质量改进或退化的图像可以近似地用方程g=Hf+n表示,其中g为图像,H为变形算子,又称为点扩散函数(PSF),f为原始的真实图像,n为附加噪声,它在图像捕获过程中产生并且是图像质量变坏。
上面的模型中,PSF是一个很重要的因素,它的值直接影响到复原后图像的质量。由于许多种退化都可以用线性的位移不变模型来近似,这样可以把线性系统种的许多数学
工具如线性代数用于求解图像复原问题,从而得到简捷的公式和快速的运算方法。
3、图像复原的原理
图像的复原就是要尽可能恢复退化图像的本来面目,它是沿图像降质的逆向过程进行[8]。典型的图像复原是根据图像退化的先验知识建立一个退化模型,以此模型为基础,采用各种逆退化处理方法进行恢复,使图像质量得到改善。可见,图像复原主要取决于对图像退化过程的先验知识所掌握的精确程度。
图像复原的一般过程:分析退化原因——建立退化模型——反映推演——恢复图像。所以图像恢复一般要分两步:首先通过系统辨识方法求解h ,然后采用相应算法由模糊图像g(x,y)和点扩展函数h(x,y)来恢复。
(二) matlab在图像复原中应用[4]
1、 MATLAB图像恢复函数的介绍
的图像处理工具箱提供了 4 个图像恢复函数,用于实现图像的恢复操作,按照其复杂程度列举如下:
· deconvwnr 函数:使用维纳滤波恢复;
· deconvreg函数:使用波约束最小二乘滤波恢复;
· deconvlucy函数:使用 Lucy- Richardson 恢复;
除了以上3个恢复函数外,还可以使用 MATLAB自定义的恢复函数。[5]
2 、维纳滤波恢复的 MATLAB实现
维纳滤波恢复函数 deconvwnr 的调用格式: J=deconvwnr(I,PSF,NCORR,ICORR)其中, I 表示输入图像, PSF 表示点扩散函数, NSR (默认值为 0)、NCORR 和 ICORR 都是可选参数,分别表示信噪比、噪声的自相关函数、原始图像的自相关函数.输出参数 J 表示恢复后的图像。从恢复的图像来看,效果还是可以的,因为这里采用了真实 PSF 函数来恢复,但是实际生活当中大多数情况下PSF 是不知道的,所以要按照具体情况具体分析。然后再恢复图像。
3、约束最小二乘滤波恢复的 MATLAB实现
约束最小二乘滤波恢复函数 deconvreg的调用格式:
J=deconvreg(I,PSF,NP,LRANGE,REGOP) 其中,I 表示输入图像,PSF 表示点扩散函数,NP、 LRANGE(输入)和 REGOP是可选参数,分别表示图像的噪声强度、拉氏算子的搜索范围和约束算子,同时,该函数也可以在指定的范围内搜索最优的拉氏算子。利用振铃抑制恢复图像是3种中恢复效果最好的,其他几种方法也可以恢复但是比较模糊,效果不是很明显。
4、 Lucy- Richardson恢复的MATLAB实现
Lucy- Richardson 算法是目前世界上应用最广泛的函数恢复技术之一,它是一种迭代方法。MATLAB提供的 decon-vlucy函数还能够用于实现复杂图像重建的多种算法中,这些算法都基于 Lucy- Richardson最大化可能性算法.
deconvlucy函数的调用格式: J=deconvlucy ( I, PSF, NU-MIT,DAMPAR, WEIGHT,
READOUT, SUBSMPL)其中, I 表示输入图像.PSF表示点扩散函数. 其他参数都是可选参数:NUMIT表示算法的重复次数,默认值为 10; DAMPAR表示偏差阈值,默认值为 0 (无偏差); WEIGHT表示像素加权值,默认值为原始图像的数值; READOUT表示噪声矩阵,默认值为0; SUBSMPL表示子采样时间,默认值为 1。
5、盲解卷积恢复的 MATLAB实现
前面几种图像恢复方法都是在知道模糊图像的点扩展函数的情况下进行的,而在实
际应用中,通常都要在不知道点扩展函数的情况下进行图像恢复。盲解卷积恢复就是在这种应用背景下提出的。盲解卷积恢复是利用原始模糊图像,同时估计 PSF和清晰图像的一种图像恢复方法。 MATLAB提供了 deconvblind 函数用于实现盲解卷积。盲解卷积算法一个很好的优点就是,在对失真情况毫无先验知识的情况下,仍然能够实现对模糊图像的恢复操作。
deconvblind函数的调用格式:
[J, PSF] =deconvblind (I,INITPSF,NUMIT,DAMPAR,WEIGHT,READOUT) 其中, I 表示输入图像, INITPSF 表示 PSF的估计值, NUMIT表示算法重复次数, DAMPAR 表示偏差阈值,WEIGHT用来屏蔽坏像素, READOUT表示噪声矩阵, J 表
示恢复后的图像
(三)图像复原的MATLAB实现举例
1、用Wiener滤波器进行复原
用Deconvwnr函数,采用Wiener滤波器恢复图像。在图像的频率特征和附加噪声已知的情况下,采用Wiener去卷积比较有效[9]。
程序代码:I=imread('');
%I = I(10+[1:256],222+[1:256],:);
figure;imshow(I);
title('Original Image');
PSF=fspecial('gaussian',7,7);%点扩散函数
Blurred=imfilter(I,PSF,'symmetric','conv');%加模糊
V=;
BlurredNoisy=imnoise(Blurred,'gaussian',0,V);%将均值为0,方差
为V的的高斯噪声加到图像Blurred中
figure;imshow(BlurredNoisy);
wnr1=deconvwnr(Blurred,PSF);%deconvwnr 函数:使用维纳滤波恢
复;
figure;im
show(wnr1);
(a)原图
(b)模糊化效果
(c)复原效果图
复原效果如上图所示,
其中图(a)是读取的源图