改进的邻域滤波图像修复方法
2011-03-15代仕梅张红英
代仕梅,张红英,曾 超
(西南科技大学 信息工程学院,四川 绵阳 621010)
0 引言
数字图像修复是对图像中遗失或者损坏的部分,利用未被损坏的图像信息,按照一定规则填补,使修复后的图像接近或达到原来的视觉效果。图像修复技术在文化艺术、视频和多媒体[1-2]、机器视觉、生物医学、航天和航空技术、通信工程等方面都有很高的应用价值。
在小尺度缺损的数字图像修复中,偏微分方程方法得到了广泛的应用。Bertalmio,Sapiro,Caselles和Bellester首先将偏微分方程(Partial Differential Equation,PDE)引入图像修复邻域[3],他们利用待修补区域的边缘信息,并采用传播机制将有用的边缘信息沿着等照度线方向自动向内扩散修复图像。随后Tony Chan等人将全变分(Total Variation,TV)模型[4]推广到图像修补,其通过运用拉格朗日(Lagrange)乘子法将有约束条件的极值问题转化为无约束条件的极值问题。该模型在修复中可以保持尖锐的边缘并且数值实现简单,但其主要缺点是不能满足视觉理论中的连通原理。因此,Chan和Shen根据连通性原理对TV模型进行改进,提出新的扩散模型——曲率驱动扩散(CDD)模型[5]。
尽管基于PDE的图像修复方法能够有条不紊地保持图像边缘,但是该类方法需要大量复杂的迭代,实现困难。当前,已有许多学者对简单快速的邻域滤波图像修复作了研究:Oliveria等人提出了一种快速图像修复算法[6],利用高斯卷积核对图像进行滤波;Shih等人提出一种自适应窗口均值滤波图像修复算法[7],利用窗口中有效像素的平均值代替待修复点的像素值;秦川等人改进了文献[7]算法,提出一种自适应偏心窗口平滑滤波图像修复方法[8],在窗口尺寸自适应算法的基础上增加了对窗口中心位置的自适应调整。笔者在这些方法的基础上,提出一种改进的邻域滤波图像修复算法,对于给定的一幅破损图像,通过计算窗口中待修复点与其邻域中已知点的距离大小赋予相应的权值,即离破损点越近的点,权值越大,离破损点越远的点,权值越小;然后仅利用该点邻域的有效信息加权求和来估算。大量实验表明该算法可以有效地减少平滑处理中的模糊,而达到很好的视觉效果。
1 Oliveria算法
Oliveria等人的快速图像修复算法的主要思想是:1)通过清空待修补区域Ω的颜色信息来对其进行初始化;2)利用3×3高斯卷积核对待修复区域进行反复卷积,将已知信息不断向修补区域内部进行扩散,达到修复目的。图1显示了快速图像修复算法伪代码以及2个扩散核。
2 自适应的图像修复算法
文献[7]提出一种自适应的图像修复算法,其主要思想是:1)初始化待修复点为中心的窗口尺寸(如3×3);2)计算窗口中信息未丢失点所占窗口总像素的比例;3)如果计算出的比例大于等于已给阈值,用此窗口有效像素的平均值代替中心点的值;否则增大窗口尺寸,然后回到第2步;4)如果窗口达到最大尺寸,停止窗口尺寸增加,直接用最大窗口有效平均值代替中心点的值。
秦川等人对文献[7]进行改进,提出一种自适应偏心窗口平滑滤波图像修复方法。他们通过判断待修复点p的邻域灰度起伏广义标准差Vp与阈值的关系,定位p点的归属区域。如果p属于平滑区域,用文献[7]的方法;如果p属于边缘区域,遍历包含p的窗口,并计算每个窗口的距离Td,然后搜索出最小距离。若最小距离Td小于预定的阈值,记下窗口尺寸,用最小距离的窗口均值来修复p;如Td大于阈值则增大窗口尺寸,并继续上述步骤。遍历所有损坏像素执行上述操作步骤,完成整个修复过程。
3 改进的邻域滤波图像修复
经反复试验发现,Oliveria算法与目前常用的基于偏微分方程的方法和基于纹理合成的方法相比,更易于实现,并且时间加快了2~3个数量级。但该算法仅考虑破损区域边缘一周的颜色值,使得其仅适用于破损区域为2~3个像素宽度的情形。
文献[7]可以自适应地改变窗口大小,破损区域外更多的信息可以利用,但是破损点的值也只是窗口内已知信息的简单平均,也即是窗口中每一个已知信息点的重要性均等,这样不能保持边缘特性。秦川等人在文献[7]的基础上,加入方差的计算来判断破损点的归属区域,然后对属于边缘区的点采用变动中心的窗口修复。此方法在修复过程中,对破损的每一个点都要计算方差使得收敛减缓;在边缘区域点的修复中要找到合适的偏心窗口,既要反复调整几个灵敏的参数,还要花费大量的时间去搜索满足条件的偏心窗口,参数的调整使得算法很难达到最佳的视觉效果,偏心窗口的搜索增加了大量运行时间。
通过分析发现,自适应的窗口大小和加权平均的邻域滤波图像修复可以很好地改善以上不足,同时不增加算法复杂度。算法要点是以待修复点为中心选取一个满足条件的窗口尺寸,计算待修复点与其邻域中已知信息点之间的欧氏距离来改变已知点的相应权值,然后用邻域像素的加权平均来估算待修复点的值。算法的实现细节:
1)采用文献[7]的方法自适应地改变窗口尺寸。以待修复的点p为中心,取一个大小为N×N(N为奇数)的窗口,初始化为3×3,接着计算窗口内完好像素所占的百分比ηg。
2)预先给定的阈值为P0,如果ηg≥P0,则p点的估计值I(p)等于其邻域内已知信息的加权平均值,即
式中:Ne是窗口中已知信息点的集合;W(p,q)为q点的权函数。权函数的计算是本算法的关键,它主要依赖于已知点与破损点之间的欧几里德距离,并满足条件0≤W(p,q)≤1和ΣW(p,q)=1。假设破损点p坐标为(x0,y0),窗口中的某一已知点q坐标为(x1,y1),p(x0,y0)与q(x1,y1)之间的欧几里德距离为
则点 q(x1,y1)的权值为
其中,z(p)是归一化因子
函数C(q)初始化为:C(q)=0,q属于破损点;C(q)=1,q属于已知点。Ne是窗口中已知信息点的集合,dist(p,q)是前面计算的距离,|Ne|是窗口中已知像素点的总数目,h是指数函数的衰减因子,调节dist(p,q)/|Ne|对权函数的影响。从式(3)可知,这种权值计算方法使得权值在窗口中已知点处有正值,破损点为零,并且权值的大小随着已知点与破损点p的距离增大而减小,也即是在与中心点正交的方向的点具有较大的权值,在于中心对角线上的点由于离中心有更大的距离,所以,它的重要性要比与中心直接相邻的像素低,这样的安排权值与直接平均值相比,减小了滤波处理中的模糊。
3)如果ηg<P0,将窗口的上、下、左、右4个边分别向外移动1个像素,然后继续执行前面的步骤;如果窗口达到给定的最大值还不满足条件,记下最大窗口尺寸,然后计算其对应权值,用最大窗口的有效值加权平均代替破损像素值。
4 实验结果与分析
所有实验均在配置为2.1 GHz处理器、2 Gbyte内存的计算机上,采用Matlab7.0实现了本文的算法。其中,实验中所有图像均由互联网获得。为了与其他的图像修复算法进行比较,同时也实现了文献[6-8]的算法。试验中,几个自适应的算法的初始窗口大小都设置为3×3,然后根据图像破损区域自身的特点设置窗口的最大值。通过反复试验发现,这样选着掩膜窗口大小的原因是Oliveira采用固定3×3大小的尺寸,破损点周围可以利用的已知信息就是破损点8邻域的信息,在这8个点中可能还有破损的信息,那么可以利用的信息量就很少;而后面3种自适应的窗口可以利用更多的已知信息;但是不是窗口越大越好,随着窗口的增大,采用滤波的方法会使得修复的图像模糊。
图2a是一幅带有破损的图像,图2b~2e是采用不同方法对破损背景以及头发的修复,通过对比头发的局部放大图像,得出以下结论:采用本文方法能够恢复头发的细节,而其他方法则在头发与背景的交界地方把背景颜色引入头发中,使得头发的恢复很不自然,有人工痕迹现象。
图2 破损图像修复结果与局部放大比较
图3a为一幅划痕图像,Oliveira方法在处理人物帽子上划痕时,因划痕较宽,可以利用有效消息较少,因此产生了较大的误差(图3b);文献[7]处理结果图中,帽子的边缘产生轻微的模糊(图3c);文献[8]处理后,因均方误差误判断破损点是属于平滑区域还是边沿区域,导致信息传递失误(图3d);而本文修复图中每一处划痕处理的效果都很好,边缘保持良好(图3e)。
图3 划痕图像修复结果与局部放大比较
图4a是一幅带有文本的图像,图4b~4e是采用不同的方法对文本移除图像进行修复的结果,其中第2行是单词“me”所在区域的放大图。从局部放大图中可以轻易发现,前3种方法修复后的图像都留有字母的印记,而本文方法几乎没有文本剔出的人工痕迹。
图4 文本移除图像修复结果与局部放大比较
下面采用客观指标,如归一化均方误差(NMSE),对修复质量进行客观评价
式中:I0为用于评价修复结果的完好图像;I为修复后的图像;M和N为图像I0和I的大小。该公式只能用于灰度图像修复后质量的评价,本文对彩色图像的3个通道分别进行误差分析。由于未获得图2的原始未破损的图像,本文只对图3和图4进行客观评价。其中,R,G,B 3个通道的NMSE误差数据如表1所示,从表1每通道误差知道本文的方法误差最小,修复效果最好。
通过实验,从主观视觉效果来看,本文方法能够较好地连接图像中的断裂边缘,恢复细小结构;从客观描述来看,本文方法对图像缺损区域重建的归一化均方误差较小。
表1 修复后图像R,G,B 3个通道的归一化均方误差
5 结论
笔者针对图像上小区域的信息丢失或破损缺修复问题,提出一种简单高效的处理算法。该算法既不像基于偏微分方程的方法反复地进行复杂的数学迭代,也不像基于纹理合成的方法做大量的搜索匹配;只需在局部窗口内简单计算破损点与已知信息点的欧欧几里德距离,然后根据距离来调控已知点的相应权值,因此运算时间仍然保持了快速图像修复的特点。从修复效果上看,该算法对文字、划痕、破损的修复都有很好的效果。不足之处在于邻域滤波会使突出的边缘结构平滑,产生轻微的模糊;对较大的破损区域中心部分的修复无能为力,这将在以后的工作中继续研究完善。
[1]张利平,张红英,吴斌.基于多种边缘检测的视频划痕检测技术[J].电视技术,2010,34(1):85-87.
[2]韩军,闵有刚,宋海华,等.视频图像修复算法的研究[J].电视技术,2007,31(7):72-74.
[3]BERTALMIO M,SAPIRO G,CASELLES V,et al.Image inpainting[C]//Proc.the ACM SIGGRAPH Conference on Computer Graphic 2000.[S.I]:ACM Press,2000:417-424.
[4]CHAN T F,SHEN J H.Mathematical models for local non-texture inpainting[J].SlAM J.Appl.Math.,2001,62(3):1019-1043.
[5]CHAN T F,SHEN J H.Non texture inpainting by curvature driven diffusion(CDD)[J].Journal of Visual Communication and Image Representation,2001,12(4):436-449.
[6]OLIVEIRA M M,BOWEN B,MCKENNA R,et al.Fast digital image inpainting[C]//Proc.the International Conference on Visualization,Imaging and Image Processing(VIIP2001).Marbella,Spain:[s.n.],2001:261-266.
[7]SHIH T K.Adaptive digital image inpainting[C]//Proc.the 18th ntemational Conference on Advanced Information Networking and Applications.Fukuoka,Japan:[s.n.],2004:71-76.
[8]秦川,黄素娟,王朔中.自适应偏心窗口平滑滤波图像修复[J].计算机工程,2008,34(5):213-215.