一种基于连分式插值技术的自适应图像修补方法及其系统与流程

文档序号:12674938阅读:265来源:国知局
一种基于连分式插值技术的自适应图像修补方法及其系统与流程

本发明涉及图像处理技术领域,具体来说是一种基于连分式插值技术的自适应图像修补方法及其系统。



背景技术:

图像修复是对图像中损坏的部分用一定的方式进行修补,使之成为一幅完整的图像。图像修复在图像处理、电影工业等行业中有着广泛的应用,比如照片和老电影中的划痕去除、图像中的文字和遮挡物去除等都与图像修复有关。因而,图像修复具有重大的应用前景,是当前计算机视觉和计算机图形学的一个研究热点。

现阶段有很多研究人员已经提出了不同的图像修补方法,并取得了一定的成功,但是这些方法缺乏通用性、修补不够完整、同时处理的边界模糊。其中,基于偏微分方程的方法和基于纹理合成的方法是目前最常见的修补方法。基于偏微分方程的图像修复方法是通过沿着图像中像素点的等照度线的方向,将修复区域周围的信息迭代到待修复区域内,一直到该图像填充完整为止。这种基于偏微分方程的方法有一定的修复效果,但是缺乏稳定性,尤其是在处理背景较大的纹理图时不能得到很好的效果。纹理合成方法是另一种修复方法,该方法首次在纹理合成中采用Markov随机场模型。实践证明,基于纹理合成的方法在处理时往往不能解决边界模糊问题,因而无法实际应用。

例如,如图3所示,图3为待修补的图像。

1、使用文献[1]和文献[2]的方法进行修复,([1]Xing Huo,Jieqing Tan,and Min Hu.An automatic video scratch removal based on Thiele type continued fraction,Multimedia Tools and Applications,vol.71,no.2,pp.451-467,2014.[2]Xing Huo,Jieqing Tan.A novel non-linear method of automatic video scratch removal,Proceedings-4th International Conference on Digital Home,pp.39-45,2012.)通过使用一元连分式修补的方法(即目前最新的采用一元连分式来进行图像修补的方法,具体算法详见文献[1][2],其中文献[1]是文献[2]的一种改进方法)处理后,如图5所示,该方法只能基本的恢复出划痕部位的图像。

2、通过使用文献[3]二元连分式修补的方法处理后,结果如图6所示,([3]Xing Huo,Jieqing Tan.Bivariate rational interpolant in image inpainting,Journal of Information and Computational Science,vol.2,no.3,pp.487-492,2005.文献[3]为目前最新的采用二元连分式进行图像修补的方法),该方法相对于一元连分式修补的方法来说能够较好的修补划痕,但是整体图像修补的效果并不好,图像较模糊。

由此可以发现,针对目前各种修补技术存在的局限性,在现有的硬件条件下,如何设计出一种高效、简单的修补方法已经成为当今急需解决的技术问题。



技术实现要素:

本发明的目的是为了解决现有技术中修复效果差、效率低的缺陷,提供一种基于连分式插值技术的自适应图像修补方法及其系统来解决上述问题。

为了实现上述目的,本发明的技术方案如下:

一种基于连分式插值技术的自适应图像修补方法,包括以下步骤:

初始化图像特征分析,对输入的划痕图像进行分析,判断该划痕图像是灰度图像还是彩色图像;若为彩色图像,则将该彩色图像沿着R、G、B三个颜色通道分别按照灰度图像的方式执行;

利用一元连分式插值技术进行划痕图像破损点的修补,通过输入的掩模图来获取对应的划痕图像中的每个待修补点的位置,然后以该划痕图像的信息矩阵为目标逐行检测这些待修补点,针对每个待修补点自适应的选择出周围的已知像素点作为采样点,由这些采样点结合一元连分式有理插值重构出每个待修补点的像素信息,得到初始的修补图像A;

利用二元连分式插值技术进行划痕图像的再修补,将初始的修补图像A作为信息图像,由掩模图来确定每一个破损点的位置,由破损点周围的像素信息采用二元连分式插值更新得到每个破损点的像素信息,得到最终的修补图像B。

所述的利用一元连分式插值技术进行划痕图像破损点的修补包括以下步骤:

划痕图像破损点的确定,输入划痕图像的掩模图,将掩模图与划痕图像进行重叠,获取到划痕图像的待修补点;

自适应选择插值采样点,读取划痕图像的破损信息矩阵,自适应的选择出离待修补点(x,y)最近的4个已知像素点,将这4个已知像素点构成插值采样点;

破损点像素值的计算,由4个已知像素点结合一元连分式插值函数计算出该破损点的像素值,其包括以下步骤:

将一元连分式插值格式定义为:

其中,bi=φ[x0,x1,…,xi;y](i=0,…,m)是函数f(x,y)在点x0,x1,…,xi的逆差商,m是输入图像的长度,满足如下:

φ[xi;y]=f(xi;y),i=0,1,2,…,m,

采用待修补点(x,y)周围的4个已知像素点的信息结合一元连分式插值函数计算出该待修补点的像素值R1(x,y);

其中,

b0=φ[x0;y]=f(x0;y),

上式中f(x0;y),f(x1;y),f(x2;y),f(x3;y)分别为4个已知像素点(x0,y),(x1,y),(x2,y),(x3,y)的像素值,R1(x,y)为计算出来的待修补点(x,y)的像素值;

按照从左到右、从上到下的方向顺序检测划痕图像中每一个待修补点,均进行自适应选择插值采样点步骤和破损点像素值的计算步骤,得到初始的修补图像A。

所述的利用二元连分式插值技术进行划痕图像的再修补包括以下步骤:

二元插值采样点的确定,读取初始的修补图像A并将其作为信息矩阵,将掩模图与初始的修补图像A进行重叠,获取到初始的修补图像A的待修补点位置,由待修补点(x,y)周围的16个已知像素信息构成插值像素点;

对待修补点(x,y)搜索找到其周围邻近的16个像素点,根据待修补点的坐标位置,依次选择:

将以上16个像素点作为二元插值采样点;

破损点像素值的更新,由二元插值采样点结合二元连分式插值函数计算出该破损点的像素值,并更新代替原有修补图像A中该点的像素值,其包括以下步骤:

将二元连分式插值格式定义为:

其中,i=0,1,…,m,m、n分别为输入图像的长、宽;

其中,为Newton–Thiele型混合差商;

构造的二元向量有理函数满足:

采用待修补点(x,y)周围的16个像素点作为二元插值采样点,即结合二元向量有理函数计算得到该待修补点的像素值R2(x,y);

R2(x,y)=B0(y)+2B1(y)+2B2(y)-2B3(y),

其中,x0′=x-2,x1′=x-1,x2′=x+1,x3′=x+2,y0′=y+2,y1′=y+1,y2′=y-1,y3′=y-2,

其中,

φNT[x0′,…,xi′;y0′,…,yj′],i=0,1,2,3,j=0,1,2,3,为Newton–Thiele型混合差商,x0′=x-2,x1′=x-1,x2′=x+1,x3′=x+2,y0′=y+2,y1′=y+1,y2′=y-1,y3′=y-2,

上式中φNT[xi′;yj′]满足:φNT[xi′;yj′]=f(xi′,yj′),其中f(xi′,yj′),为对应的已知像素点(xi′,yj′)的像素值;

将像素值R2(x,y)代替初始的修补图像A中该点的像素值R1(x,y),更新后待修补点(x,y)的像素值为R2(x,y);

从按从左到右、从上到下的方向顺序对初始的修补图像A的每一个待修补点均进行二元插值采样点的确定步骤和破损点像素值的更新步骤,得到了最终的修补图像B。

所述的自适应选择插值采样点包括以下步骤:

以划痕图像的破损信息矩阵为目标进行逐行检测;

若发现待修补点(x,y),则在待修补点(x,y)同行的两侧由近至远的依次搜索破损点周围邻近的未破损像素点,将搜索到的未破损像素点作为一个采样点;

当搜索到未破损的像素点数量达到4个时,停止搜索,在待修补点(x,y)同行的两侧共得到4个有效采样点。

一种基于连分式插值技术的自适应图像修补方法的系统,包括:用于确定输入图像的类型的初始化图像输入模块、用于获得初始的修补图像A的一元连分式插值修补模块和用于获得最终的修补图像B的二元连分式插值再修补模块;

所述的初始化图像输入模块的输出端与一元连分式插值修补模块的输入端相连,一元连分式插值修补模块的输出端与二元连分式插值再修补模块的输入端相连。

有益效果

本发明的一种基于连分式插值技术的自适应图像修补方法及其系统,与现有技术相比提高了图像修补的质量和效率,能够修改任意类型的划痕,适用于所有的图像处理。

通过掩模图的配合使用,可以迅速确定修补的位置而节省修补的时间,同时,可以根据用户要求灵活地修补感兴趣的那部分图像块。本发明修补的图像效果好、纹理细节丰富,修改效率大大提高,实际应用性强。

附图说明

图1为本发明的方法顺序图;

图2为本发明的系统结构原理图;

图3为现有技术中待修补图片;

图4为图3对应的掩模图;

图5为使用文献[1][2]的方法对图3进行修补后的效果图;

图6为使用文献[3]的方法对图3进行修补后的效果图;

图7为使用本发明方法进行修补后的效果图。

具体实施方式

为使对本发明的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:

如图1所示,本发明所述的一种基于连分式插值技术的自适应图像修补方法,通过一元连分式插值能够获得初始的修补图像,再通过二元连分式插值对初始的修补图像进行再次修补,从而得到最终的修补效果。本发明将两种方法结合起来不会带来庞大的运算量的问题,因为单纯的一元连分式插值修补相对于单纯的二元连分式插值修补运算量要小很多,所以,将一元连分式插值修补方法作为主要的修补技术,而将二元连分式插值修补方法作为次要的修补技术,仅仅用来更新破损点的像素值,从而降低整体的运算量。

其包括以下步骤:

第一步,初始化图像特征分析。对输入的划痕图像进行分析,判断该划痕图像是灰度图像还是彩色图像。若为彩色图像,则将该彩色图像沿着R、G、B三个颜色通道分别按照灰度图像的方式执行,进行第二步骤;若为灰色图像,则直接进行第二步骤。

第二步,利用一元连分式插值技术进行划痕图像破损点的修补。

通过输入的掩模图来获取对应的划痕图像中的每个待修补点的位置,然后以该划痕图像的信息矩阵为目标逐行检测这些待修补点,针对每个待修补点自适应的选择出周围的已知像素点作为采样点,由这些采样点结合一元连分式有理插值重构出每个待修补点的像素信息,得到初始的修补图像A。

如图3和图4所示,掩模图为待修复图的划痕图,通过使用掩模图可以准确定位到待修复图中的划痕。同时,掩模图的配合修补,突破了传统的仅仅针对破损图的修补,也可以适用于对图像某部分感兴趣位置的修补,不一定非要是划痕图,比如遮挡物的移除,图像部分细节的再重建等。另外,掩模图还可以对图像上某些区域进行屏蔽,使其不进行修补处理,从而提高了修补效率,同时,对于一些特殊形状的图像修补,掩模图可以更好的进行修复。用选定的图像、图形或物体,对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。

其具体步骤如下:

(1)划痕图像破损点的确定。输入划痕图像的掩模图,将掩模图与划痕图像进行重叠,获取到划痕图像的待修补点。掩模图通常为二值图像,图像大小为划痕图的大小,对于不感兴趣的那部分区域像素值为0,体现为黑色,而感兴趣或者遮挡或者划痕所在的位置像素值为1,体现为白色。

(2)自适应选择插值采样点。

读取划痕图像的破损信息矩阵,自适应的选择出离待修补点(x,y)最近的4个已知像素点(非破损的有效信息点),将这4个已知像素点构成插值采样点。一般来说,插值采样点数量越多越能体现连分式的优势,但是由于采用4个以上数量的像素点进行插值会造成算法的效率低,并且插值的效果也近似于4个像素点的插值,另外,2个或3个像素点的插值体现不出连分式插值的优势,并且插值的效果不好,因而,采用4个像素点来插值处理是最合适的。

A、以划痕图像的破损信息矩阵为目标进行逐行检测;

B、若发现待修补点(x,y),则在待修补点(x,y)同行的两侧由近至远的依次搜索破损点周围邻近的未破损像素点,将搜索到的未破损像素点作为一个采样点;

C、当搜索到未破损的像素点数量达到4个时,停止搜索,在待修补点(x,y)同行的两侧共得到4个有效采样点。

自适应的方法用于一元连分式插值采样点的选择中相比于传统的插值窗口更具有灵活性,因为每一行或每一列中可能会有几个相邻的待修补点未知,若采用传统的插值窗口势必造成破损点的像素值计算不正确或者偏差太大,而自适应的方式是根据实际待修补点的位置,采用同一行中左右最近邻的搜索方式来查找可用的采样点,并将该采样点加入作为插值点,一旦搜索的采样点数量达到要求时,就停止搜索,并将这些采样点用于插值计算出该修补点的像素值。

本发明将自适应的方法与连分式理论相结合应用于图像处理中,为图像处理领域的首创。将自适应的方法和连分式理论相结合用于图像的修补中,主要体现在自适应的方法用于一元连分式插值采样点的选择中。传统的一元连分式插值采样点的选择具有随意性,通常选择破损点附近的几个已知像素点作为采样点(如文献[1][2]中的方法)或者沿着破损点所在坐标的正向方向依次选取几个已知像素点作为采样点。由于这种随意性,导致了修补算法的不稳定,甚至每次插值得到的该破损点的像素值不同。自适应的方法用来进行采样点的选择时,是以该破损点为中心,采取左右对称、由近至远的方式来选取采样点,类似于指针处理一样,先查找离该破损点最近的左右两个像素点(此处左右两个像素点的先后顺序不分),判断是否为已知像素点,如果两个都是已知像素点,则将这两个像素点作为采样点,如果其中一个为已知像素点,则将该像素点加入为采样点,如果两个都不是已知像素点,则指针移动到下一个离该破损点次近(次近是指离破损点中间间隔一个像素点的位置)的左或右的像素点,采用同样的方法进行判断该像素点是否为已知像素点,并进行处理。依次类推,同样的操作,当搜索的采样点数量达到要求时,就停止搜索,并将这些采样点用于插值计算出该修补点的像素值。

(3)破损点像素值的计算。由4个已知像素点结合一元连分式插值函数计算出该破损点的像素值,其包括以下步骤:

A、将一元连分式插值格式定义为:

其中,bi=φ[x0,x1,…,xi;y](i=0,…,m)是函数f(x,y)在点x0,x1,…,xi的逆差商,m是输入图像的长度,满足如下:

φ[xi;y]=f(xi;y),i=0,1,2,…,m,

B、采用待修补点(x,y)周围的4个已知像素点的信息结合一元连分式插值函数计算出该待修补点的像素值R1(x,y);

其中,

b0=φ[x0;y]=f(x0;y),

上式中f(x0;y),f(x1;y),f(x2;y),f(x3;y)分别为4个已知像素点(x0,y),(x1,y),(x2,y),(x3,y)的像素值,R1(x,y)为计算出来的待修补点(x,y)的像素值;

(4)按照从左到右、从上到下的方向顺序检测划痕图像中每一个待修补点,均进行自适应选择插值采样点步骤和破损点像素值的计算步骤,当所有的待修补点均计算完,便得到初始的修补图像A。

第三步,利用二元连分式插值技术进行划痕图像的再修补。将初始的修补图像A作为信息图像,由掩模图来确定每一个破损点的位置。此处,再用一次掩模图是为了确认破损点的位置,因为初始修补图像A中已经看不出哪些是破损点了,所以,必须由掩模图来确定破损点位置信息。由破损点周围的像素信息采用二元连分式插值更新得到每个破损点的像素信息,得到最终的修补图像B。

二元连分式插值技术进行划痕图像的再修补,从使用的插值函数和插值窗口的选择来说,与现有的插值方法相同,不同的在于插值函数和插值窗口作用的对象不一样。现有技术作用的对象都是原始破损图,而本发明作用对象为上一步得到的初始修补图。之所以采用初始修补图,是为了提高修补的效率。由于第二步已经采用了一元连分式进行了修补,部分破损点可能已经得到了正确的像素值,如果再次采用二元连分式对原始破损图来修补,势必进行了重复的操作,这是不必要的,同时也会降低整体算法的效率。因此在此步骤,采用二元连分式插值技术进行划痕图像的再修补时,我们仅仅将待修补点当做破损点,而其他在原始破损图中的破损点并未作为破损点,而是将这些点作为已知像素点,它们所取的像素值为初始修补图中对应的这些点的像素值,然后采用现有的插值函数和插值窗口计算出待修补点的像素值。该步骤之所以这样处理,是考虑了图像像素之间的关联性,越接近待修补点的像素点它们之间的相似性越大,因此,把待修补点周围的其他所有像素点都作为已知像素点来处理势必会得到更接近原始的像素值。从该步骤处理也可以发现,由于把除了待修补点之外的其他像素点都作为已知像素点了,那么下一个待修补点如何确定就变得困难了,这个时候就需要配合掩膜图使用,由掩模图来确定每一个破损点的位置。

其包括以下步骤:

(1)二元插值采样点的确定。读取初始的修补图像A并将其作为信息矩阵,将掩模图与初始的修补图像A进行重叠,获取到初始的修补图像A的待修补点位置,由待修补点(x,y)周围的16个已知像素信息构成插值像素点;

对修补点(x,y)搜索找到其周围邻近的16个像素点,根据待修补点的坐标位置,依次选择:

将以上16个像素点作为二元插值采样点。

在此是在初始修补图像A的基础上进行破损信息的更新,所以,没有采用3*3插值窗口(即9个像素点),而是采用4*4插值窗口(即16个像素点)来处理,因为3*3插值窗口和4*4插值窗口在此处的效果差不多,同时,将图像分割成3*3的图像块相比于分割成4*4的图像块来说,图像块更多,而图像块越多算法执行的次数越多,所以,从效率角度来看,采用16个像素点作为采样点更合适。对于16个以上的像素点来说,连分式运算的速度慢,整个算法的效率低,不适合使用。

(2)破损点像素值的更新。由二元插值采样点结合二元连分式插值函数计算出该破损点的像素值,并更新代替原有修补图像A中该点的像素值,其包括以下步骤:

A、将二元连分式插值格式定义为:

其中,i=0,1,…,m,m、n分别为输入图像的长、宽;

其中,为Newton–Thiele型混合差商;

构造的二元向量有理函数满足:

B、采用待修补点(x,y)周围的16个像素点作为二元插值采样点,即结合二元向量有理函数计算得到该待修补点的像素值R2(x,y);

R2(x,y)=B0(y)+2B1(y)+2B2(y)-2B3(y),

其中,x0′=x-2,x1′=x-1,x2′=x+1,x3′=x+2,y0′=y+2,y1′=y+1,y2′=y-1,y3′=y-2,

其中,

φNT[x0′,…,xi′;y0′,…,yj′],i=0,1,2,3,j=0,1,2,3,为Newton–Thiele型混合差商,

x0′=x-2,x1′=x-1,x2′=x+1,x3′=x+2,y0′=y+2,y1′=y+1,y2′=y-1,y3′=y-2,

上式中φNT[xi′;yj′]满足:φNT[xi′;yj′]=f(xi′,yj′),其中f(xi′,yj′),为对应的已知像素点(xi′,yj′)的像素值;

C、将像素值R2(x,y)代替初始的修补图像A中该点的像素值R1(x,y),更新后待修补点(x,y)的像素值为R2(x,y)。

(3)按从左到右、从上到下的方向顺序对初始的修补图像A的每一个待修补点均进行二元插值采样点的确定步骤和破损点像素值的更新步骤,得到了最终的修补图像B。

如图2所示,在此还提供一种基于连分式插值技术的自适应图像修补方法的系统,其包括:用于确定输入图像的类型的初始化图像输入模块、用于获得初始的修补图像A的一元连分式插值修补模块和用于获得最终的修补图像B的二元连分式插值再修补模块。

所述的初始化图像输入模块的输出端与一元连分式插值修补模块的输入端相连,一元连分式插值修补模块的输出端与二元连分式插值再修补模块的输入端相连。

如图3所示为待修补的图片,图4为修补时使用的掩膜图。通过使用一元连分式修补方法(具体算法详见文献[1][2])处理后,如图5所示,对图片破损部分进行了部分修改,但仍存在部分破损点未修补。通过使用二元连分式修补方法(具体算法详见文献[3])处理后,如图6所示,图片整体视觉效果和质量有所提升。如图7所示,采用本发明的方法进行修补后,明显划痕部分的细节恢复的更好,整体视觉效果更好,较文献[1][2][3]的方法都有更大程度的优化和提升。

为了体现出本发明的效率相比于其他三种方法更高,将这四种方法运行时间的比较显示在表1中。

表1本发明方法与文献[1][2][3]方法的运行时间比较表

为了显示出本发明的效果更好,相比于另三种方法有了更好的提升,将采用评估图像质量的理论参数,即峰值信噪比来作为评价的指标,在表2中显示了这四种方法修补后的图像的峰值信噪比的比较。

表2使用本发明方法与文献[1][2][3]方法的峰值信噪比的比较表

从客观角度出发进行比较可以发现,根据公式这里m×n为矩阵的大小,max=255,f(i,j)为原始图像,为修补后的图像,利用此公式计算出峰值信噪比PSNR的值。峰值信噪比越大,表明修补后的图像和原始图像越接近,即修补的图像视觉效果越好,分辨率越高。

如表2所示,对待修补的图片使用如上方法修补后的峰值信噪比的结果,可以发现本发明修补后的峰值信噪比比较现有技术方法的结果明显要高,图像分辨率和质量更高。

如表1所示,对待修补的图片使用如上方法修补的运行时间的结果,在同样运行环境的电脑上运行现有技术方法和本发明的方法,并记录算法的运行时间,可以发现本发明的效率相比于二元连分式修补方法(即文献[3]的方法)更高,由于一元连分式是在一维坐标方向上的处理,因而相对于二维坐标方向同时处理的二元连分式来说效率要高。所以,从整体角度评估,本发明相比于现有技术来说不仅具有较好的运算效率,同时修补的图片质量更高。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1