本发明属于计算机图像复原领域,涉及一种基于多窗口融合的数字图像修复算法,可用于文物保护、影视特效制作等。
背景技术:
数字图像修复技术是对待修复图像中信息缺失区域进行信息填充的过程,其目的是为了实现破损图像的复原,同时使得观察者无法察觉到图像被修复的痕迹。数字图像修复技术现已应用于众多领域,在摄影和电影业中用以修复电影、还原变质恶化的胶片,同时其还可用于消除红眼、照片上的日期、数字水印等等。
现阶段的数字图像修复技术主要分为两大类,一类是基于偏微分方程的数字图像修复算法,另一类是基于纹理合成的数字图像修复算法。相较于基于偏微分方程的修复算法,基于纹理合成的数字图像修复算法具有许多显著的优点,其兼顾了图像的纹理与结构易于大区域破损图像修复的实现。criminisi算法是目前最常用的基于纹理合成的数字图像修复算法,但该算法存在一定的缺陷,其需要通过指定修复窗口的尺寸进行纹理的填充与合成,当修复窗口发生变化时,易造成修复结果出现较大的偏差。因此采用单一修复窗口进行修复的criminisi算法需要合理的选择修复窗口的尺寸。
技术实现要素:
本发明针对criminisi算法存在的问题提出一种基于多窗口融合的数字图像修复算法,通过对不同尺寸修复窗口下的修复结果进行融合,更新待修复破算图像的纹理与结构信息,继而完成多窗口融合下的数字图像修复。本发明的技术方案如下:
一种基于多窗口融合的数字图像修复算法,包括下列步骤:
(1)对于待修复图像i,设定不同尺寸下的修复窗口ωn,其中n为修复窗口的序号且n∈{1,...,n},n为窗口的个数;
(2)在修复窗口ωn下,采用criminisi修复算法完成待修复图像i的修复,修复后的图像记为in;
(3)根据公式
(4)根据公式pu(pu)=cu(pu)·du(pu)·eu(pu)计算目标像素点pu的优先权pu(pu),其中cu(pu)为目标像素点pu的置信度项,du(pu)为目标像素点pu的数据项,
总之,本发明针对criminisi算法存在的不足,提出了一种基于多窗口融合的数字图像修复算法,依据多窗口的修复结果进行待修复破损图像的更新,同时依据修复方差信息对传统的criminisi算法中的优先权计算进行改进。本发明能够获得更为精确的数字图像修复效果,有着广泛的应用前景。
附图说明
图1本发明的基于多窗口融合的数字图像修复算法流程图。
图2为本发明与传统criminisi数字图像修复算法对图像的修复效果对比,其中:
图(a)待修复的破损图像(红色区域代表破损区域);
图(b)为传统criminisi算法的修复效果;
图(c)为本发明方法修复效果。
具体实施方式
本发明基于多窗口融合的数字图像修复算法,主要由三部分组成:多尺寸窗口下的数字图像修复、待修复图像的更新及修复方差信息的计算、优先权计算函数的改进。具体步骤和原理如下:
101:设置不同尺寸的修复窗口;
修复窗口的尺寸为ωn,n=1,...,n,n为修复窗口的序号,n为窗口的个数。采用criminsi修复算法对待修复图像i进行修复,修复后的图像记为in:
102:修复窗口尺寸为ωn下的待修复图像i破损区域及源区域的标记;
待修复图像i的破损区域记为ωn,边缘记为
103:对i修复过程中相关参数的更新;
pn(pn)=cn(pn)·dn(pn)
其中pn(pn)为目标像素点pn的优先权,cn(pn)为目标像素点pn的置信度项,ωn(pn)为以pn为中心像素点,窗口尺寸为ωn的任意像素点组成的目标块;vn为ωn(pn)与源区域φn交集内的像素点;dn(pn)为目标像素点pn的数据项;
根据如下公式计算目标像素点优先权最大的点
得到
其中,qn为源区域为φn内的任意像素点。
接着使用最优匹配块对破损的待修复块进行填充修复,并将待修复块标记为已修复的样本块,更新破损区域及源区域:
得到最优匹配块
然后更新破损区域及源区域,分别得到新的破损区域ω'n及新的源区域φ'n即:
接着将新的破损区域再次标记为破损区域,将新的源区域再次标记为源区域,即:
ωn=ω'n
φn=φ'n
更新已修复样本块内相应像素点的置信度值;
按照以下公式对已修复样本块内相应像素点的置信度值,
104:重复102-103步骤,直至破损区域为空集,完成图像的修复。
得到修复窗口尺寸为ωn下的修复结果in。
105:待修复图像的更新以及修复方差图的计算;
将修复结果中相似的部分用于更新待修复图像i,更新后的待修复图像记为ui,同时统计ui中每一个像素点在i1,...,in对应位置中的亮度值方差,得到修复方差图vi:
其中z为像素点坐标,d为比较次序,更新后的待修复图像记为vi融合了n个修复的结果,并统计以i1为基准,修复图像的方差信息。vi(z)越小,说明z点在多个修复结果中的偏差不大,在后续的修复中可以进行优先修复。因此在优先权的计算中合理的添加方差信息可以保证z点得到优先修复。
106:对ui采用基于改进优先权函数的criminisi算法进行修复,标记修复窗口尺寸为ω1下的待修复图像ui破损区域及源区域;
待修复图像ui的破损区域记为ωu,边缘记为
107:对ui修复过程中相关参数的更新;
pu(pu)=cu(pu)·du(pu)·eu(pu)
其中pu(pu)为目标像素点pu的优先权,cu(pu)为目标像素点pu的置信度项,ωu(pu)为以pu为中心像素点,窗口尺寸为ωu的任意像素点组成的目标块;vu为ωu(pu)与源区域φu交集内的像素点;du(pu)为目标像素点pu的数据项;eu(pu)为目标像素点pu的修复方差信息vi(pu)与常数ε(值取为1)构成的融合项,其反应了pu在先前多窗口修复结果之间的偏离程度,值越大说明偏离越小,予以优先修复;
根据如下公式计算目标像素点优先权最大的点
得到
其中,qu为源区域为φu内的任意像素点。
接着使用最优匹配块对破损的待修复块进行填充修复,并将待修复块标记为已修复的样本块,更新破损区域及源区域:
得到最优匹配块
然后更新破损区域及源区域,分别得到新的破损区域ω'u及新的源区域φ'u即:
接着将新的破损区域再次标记为破损区域,将新的源区域再次标记为源区域,即:
ωu=ω'u
φu=φ'u
更新已修复样本块内相应像素点的置信度值;
按照以下公式对已修复样本块内相应像素点的置信度值,
108:重复106-107步骤,直至破损区域为空集,完成图像的修复。
得到最终的修复结果ip。
下面以具体的试验来验证本方法的可行性,详见下文描述:
试验结果均为本方法在cpu为inteli7-3610qm,2.3ghz,内存为16g的笔记本电脑上运行所得,操作系统为windows7,仿真软件为64位matlabr2012b。
从图2中可以看出,采用传统的criminisi修复算法得到的修复效果不佳,在椅子的边缘处存在明显的误修复,而本发明经过多窗口修复融合后获得的修复效果更加自然合理。
本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本发明的具体流程如下:
(1)对于待修复图像i,设定不同尺寸下的修复窗口ωn,其中n为修复窗口的序号且n∈{1,...,n},n为窗口的个数;
(2)在修复窗口ωn下,采用criminisi修复算法完成待修复图像i的修复,修复后的图像记为in;
(3)根据公式
(4)根据公式pu(pu)=cu(pu)·du(pu)·eu(pu)计算目标像素点pu的优先权pu(pu),其中cu(pu)为目标像素点pu的置信度项,du(pu)为目标像素点pu的数据项,