基于MATLAB的模糊图像复原算法分析
2021-10-29段盼君
◆段盼君
基于MATLAB的模糊图像复原算法分析
◆段盼君
(沈阳师范大学软件学院 辽宁 110000)
为了解决由相机、物体、背景间相对运动,让场景内的物体快速移动的效果造成的运动模糊,本文选用目前流行的数字图像处理系统Matlab作为平台进行研究。首先选用一张图像,将其进行运动模糊,以该运动模糊图像为研究对象,分别用维纳滤波算法、最小二乘方滤波算法、Richardson-Lucy算法、循环边界算法以及CDD等算法来修复其模糊图像。经过各种算法修复的图片对比,发现用最小二乘方滤波算法修复的效果最好,模糊图像几乎都被修复了;其次是维纳滤波算法,发现其随着K值的不断减少,图像修复效果也随之变好;最后是Richardson-Lucy算法,其随着迭代的次数越多恢复的效果越好。循环边界算法基本能大致修复图像,而CDD算法跟其他几种算法相比较修复效果较差,不能很好地满足修复需求。进行运动模糊修复时,最小二乘方滤波算法、维纳滤波算法和Richardson-Lucy算法相对于剩下的2种算法,其修复效果更好。
图像的模糊与修复;运动模糊;维纳滤波算法;最小二乘方滤波算法;Richardson-Lucy算法;循环边界算法;CDD算法
1 研究背景
图像修复是指对受到损坏的图像进行重建,从而使图像达到理想的艺术效果。而运动模糊图像修复是通过一些特定技术,包括使用某种方式估计的退化函数,进行精确的恢复处理[1-2]。针对待修复图像,维纳滤波算法需要从噪声中分离出有用信号是整个信号,而不只是它的几个参量[3]。维纳滤波复原算法是假定图像信号和噪声信号均近似看出是平稳随机过程,然后看均方差是否达到最小[4]。维纳滤波算法的误差值是最小的,它得出的结果也是最佳的[5]。最小二乘方滤波需要求噪声的方差和均值,但这两样参数可以通过给定的退化图像计算出来。Richardson-Lucy算法也是常见的复原算法之一[6],该算法是从极大似然公式中引出来的,图像是用泊松分布来统计建模的。另外常见的复原算法还有循环边界算法。循环边界算法是为了防止图像的边界区域产生边缘效应,从而需要对原始图像进行周期性的延拓处理。CDD算法是基于偏微分方程的数字图像修复,此外还有TV模型修复算法,但该算法不能较好达到连接断裂边缘区域的视觉连通性要求[7-8]。CDD模型在此基础上引进曲率而提出了高阶偏微分方程模型。
本文针对所提算法进行图像模糊与复原的研究,实验结果表明所提的一些算法修复效果较好,且简单易行。
2 图像模糊
本文选用图像大小为700×473的一张图片,即图1。使用Matlab中fspecial函数中的motion类型,其中包含两个参数len和theta,分别表示图片逆时针方向以27°运动了27个像素。图2是得到处理后的运动模糊图像。
图1 原始图像
图2 运动模糊图像
3 图像复原的算法及其原理
3.1 维纳滤波算法[9]
该公式中误差函数的最小值在频域的表达式可表述为:
其中,
(,)表示退化函数
|(,)|2=*(,)(,)
*(,)=(,)的共轭
S(,)/S(,)是信噪比,一般情况下用常数表示该信噪比,因为S(,)和S(,)是未知的。
本次实验用的是Matlab中的deconvwnr函数,且分别在NSR等于0.1、0.01和0.001三种情况下进行实验。
3.2 最小二乘方滤波算法
最小二乘方滤波是通过函数deconvreg来实现,其语法为:
fr = deconvreg(g,PSF,NOISEPOWER,RANGE)
其中,g是被污染的图像,fr是复原的图像,PSF代表点扩散函数。
本次实验直接用的是MATLAB中的deconvreg函数。
3.3 Richardson-Lucy算法
Richardson-Lucy算法是从最大似然公式中引出来的,在这个方程中,图像是用泊松分布加以模型化的。当用下面这个公式进行迭代收敛时,模型的最大似然函数可以得到一个比较好的方程,即:
在MATLAB中,此算法是由deconvlucy函数完成的,其基本语法为:
fr = deconvlucy(g,PSF,NUMIT,DAMPAR,WEIGHT)
其中,fr代表复原图像,g是指退化图像,PSF是点扩散函数,NUMIT表示算法的迭代次数,默认值为10。
本次实验用的是MATLAB提供的deconvlucy函数,利用加速收敛的Richardson-Lucy算法进行图像复原,其分别在当NUMIT等于0、30和60的情况下进行实验。
3.4 循环边界算法
为了防止图像的边界区域产生边缘效应,循环边界算法必须对所采集到的图像(,)进行周期延拓,使其成为周期序列。本次实验是先得到模糊图像维纳处理结果,其次得到该结果的循环边界图像,然后对该图像维纳处理,最后取其左上角图像。
3.5 CDD算法[9]
CDD模型是Chan和Shen在TV模型的基础上引进了曲率驱动而形成的,解决了TV模型不能修复图像视觉连通性的问题。他们用曲率来表示等照度线的几何信息并将其作用到扩散系数中,引入曲率函数(||),传导系数修改为(||)|∇|-1。函数(||)的定义为
4 基于MATALB图像复原技术的仿真实现
本文实验环境为软件MATLAB2019a。应用本文所提相关算法对经过处理后的运动模糊图像进行了恢复,其恢复效果如图3。
图3 恢复效果
从实验结果分析,发现最小二乘方滤波算法、维纳滤波算法和Richardson-Lucy算法修复效果比较自然。循环边界算法基本能大致修复图像,而CDD算法跟其他几种算法相比较修复效果较差,不能很好地满足修复需求。
5 总结与展望
本文的研究重点是怎么将因为相对运动所产生的运动模糊图像来进行恢复,达到一个比较好的修复效果。整个项目依托Matlab软件,使用了5种比较经典和常见的图像修复算法。经过分析研究,得出以下结论:
(1)波约束最小二乘滤波算法,调整参数可以得到修复效果较好的复原图像;
(2)维纳滤波算法,随着K值不断减小,图像噪声越来越明显,这表明对噪声抑制效果越不好,所以恢复就越准确。实验表明,当K=0.001时,能取得较好的修复效果;
(3)Richardson-Lucy算法,每次迭代的时候会提高解的似然性。所以随着迭代次数的增加,修复效果也在慢慢变好;
(4)循环边界算法能大致修复图像,CDD算法相较于上述所提算法来说,修复效果没有那么好。
运动模糊图像恢复技术现阶段广泛应用在了天文、军事、医学图像等科技领域,社会的进步和科学技术的发展使得运动模糊图像恢复应用的领域也将越来越多。最小二乘方滤波算法、维纳滤波算法和Richardson-Lucy算法相对于剩下的2种算法修复效果更好,可以适用于由于相对运动造成模糊的图像。比如监控拍摄到肇事逃逸司机车的图片、车牌,但由于相对运动造成了图像模糊,用这些修复算法可以大大加快破案的速度,在实际生活中具有十分重要的意义。
[1]孙启航. 基于运动模糊图像的计算机复原技术研究[J]. 科技资讯,2020,018(011):4-5.
[2]黄小芬. 运动模糊车牌图像的复原算法研究与实现[J]. 山西大同大学学报(自然科学版),2018, v.34;No.170(03):40-43.
[3]陈军. 基于维纳滤波算法的医学影像图像除噪分析研究[J]. 辽宁大学学报(自然科学版),2019,v.46;No.157(01):52-56.
[4]姜金美,胡蓉,赵全友. 基于改进的维纳滤波图像复原算法的研究[J]. 大众科技,2020,v.22;No.245(01):6-9.
[5]岑红. 计算机视觉技术的图像识别与复原研究[J]. 电脑编程技巧与维护,2020,426(12):144-145+155.
[6]陈员义,杨文福,周祥明,徐华银.基于改进R-L算法的运动模糊图像复原方法研究[J].兵器装备工程学报,2020,41(10):228-232.
[7]杜闪闪. 基于偏微分方程的图像修复算法研究[D]. 2019.
[8]李建民,汪琦,林振荣,等. 改进的CDD图像修复模型算法[J]. 计算机工程与设计,2018,v.39;No.380(08):172-177.
[9]王建新,黄培. 基于MATLAB的图像复原算法的研究与改进[J]. 信息技术与信息化,2019,000(012):95-98.