CN103440618A - 基于块的纹理合成方法和装置 - Google Patents

基于块的纹理合成方法和装置 Download PDF

Info

Publication number
CN103440618A
CN103440618A CN2013104415998A CN201310441599A CN103440618A CN 103440618 A CN103440618 A CN 103440618A CN 2013104415998 A CN2013104415998 A CN 2013104415998A CN 201310441599 A CN201310441599 A CN 201310441599A CN 103440618 A CN103440618 A CN 103440618A
Authority
CN
China
Prior art keywords
texture
error
overlay region
candidate
integral image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2013104415998A
Other languages
English (en)
Inventor
普园媛
徐丹
覃日钊
赵征鹏
王朝晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yunnan University YNU
Original Assignee
Yunnan University YNU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yunnan University YNU filed Critical Yunnan University YNU
Priority to CN2013104415998A priority Critical patent/CN103440618A/zh
Publication of CN103440618A publication Critical patent/CN103440618A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

本发明公开了一种基于块的纹理合成方法和装置。其中,该方法包括:查找候选纹理块集合中的每个候选纹理块与在目标纹理图中已合成纹理块的重叠区;将已合成纹理块中的重叠区记为B1 ov,将候选纹理块中的重叠区记为B2 ov,计算其中,是候选纹理块和已合成纹理区域相重叠部分中每个像素值的平方和误差;是候选纹理块和已合成纹理区域重叠区中每对对应像素的点乘和误差;采用积分图像方法计算平方和误差,采用FFT计算点乘和误差;根据每个候选纹理块对应的SSD确定最优纹理块;将上述最优纹理块与目标纹理图中已合成纹理块进行合成,重复以上步骤,直至完成目标纹理图的纹理合成。本发明加快了纹理合成速度。

Description

基于块的纹理合成方法和装置
技术领域
本发明涉及图形图像处理领域,具体而言,涉及基于块的纹理合成方法和装置。
背景技术
基于样图的纹理合成方法(Texture Synthesis from Samples,TSFS)是继纹理映射、过程纹理合成方法之后发展起来的一种新的纹理合成方向。其原理为:基于给定的小区域纹理样本,按照物体表面的几何形状,拼合生成任意大小的纹理图像。
目前,TSFS技术有两大类:基于点的纹理合成和基于块的纹理合成。其中,基于点的纹理合成方法主要采用Markov Random Field(MRF,马尔科夫随机场)模型进行纹理合成,MRF模型认为纹理具有局部统计特征,即纹理中的任一部分都可以由其周围部分(即邻域)完全决定,对于大多数纹理,MRF模型能够很好地描述纹理的特征,提升了样图纹理合成的质量,但是由于每合成一个像素都要搜索一遍样本图,运算量非常大,运算的速度也很慢。而基于块的纹理合成方法,其每次合成一个方形的区域,通过寻找最佳纹理块和按最佳缝合线拼接最佳纹理块来产生新的纹理,大大提高了合成速度,同时还避免了点合成过程中的模糊效果,对纹理结构保持的较好。
基于块的纹理合成方法的主要步骤如下:
(1)在输入的纹理样本图中任取一块纹理块B1,放在目标纹理图中,然后在纹理样本图中查找新的一块纹理块B2,具体查找方法包括以下步骤①至③:
①按照扫描线顺序,在纹理样本图中移动纹理块的左上角的位置,即从纹理样本图的(0,0)坐标开始,按照扫描线顺序把每一个点作为纹理块的左上角顶点,遍历纹理样本图,得到候选纹理块集合。
②对每个候选纹理块,按照重叠区宽度(overlapWidth)找到其与在目标纹理图中已经合成块的重叠区,在已合成纹理块中的重叠区记为B1 ov,在候选纹理块中的重叠区记为B2 ov,计算重叠区误差Error,用重叠区内对应像素的颜色差值平方和(SSD,Sum-of-Squared Differences)来度量该误差,计算方法为:
Error = Σ i , j ∈ overlap [ ( R 1 ij ov - R 2 ij ov ) 2 + ( G 1 ij ov - G 2 ij ov ) 2 + ( B 1 ij ov - B 2 ij ov ) 2 ]
式中,
Figure BDA0000387443040000022
Figure BDA0000387443040000024
内对应像素的RGB颜色值,是B2 ov内对应像素的RGB颜色值。
③找出重叠区误差在误差容忍度(Tolerance)范围内的候选纹理块的集合,然后随机在该集合中挑选一个纹理块作为新找到的最优纹理块B2
(2)将B2放在目标纹理图中,与已合成纹理块进行拼接,即寻找其与已合成纹理块之间的最佳缝合线,共有垂直、水平和L型三种拼接的种类。最佳缝合线用Dijkstra的最短路径方法得到。
(3)把找到的最佳缝合线当成新的纹理边界,将B2放在目标纹理图中,按最佳缝合线进行拼合。
(4)重复以上步骤直至目标纹理图全部被合成纹理块覆盖。
由上述基于块的纹理合成方法实现过程可知,最花费时间的是SSD误差计算环节,上述SSD误差计算方法的复杂程度直接影响了纹理合成的速度。
针对上述基于块的纹理合成方法中SSD误差计算复杂,导致纹理合成速度较慢的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例的目的在于提供一种基于块的纹理合成方法和装置,用以解决上述问题。
根据本发明实施例的一方面,提供了一种基于块的纹理合成方法,包括:对纹理样本图中确定的候选纹理块集合中的每个候选纹理块,按照重叠区的宽度查找其与在目标纹理图中已合成纹理块的重叠区;将已合成纹理块中的重叠区记为B1 ov,将候选纹理块中的重叠区记为B2 ov,计算重叠区对应像素的颜色差值平方和
Figure BDA0000387443040000031
其中,
Figure BDA0000387443040000032
是候选纹理块和目标纹理图中已合成纹理区域相重叠部分中每个像素值的平方和误差;是候选纹理块和目标纹理图中已合成纹理区域重叠区中每对对应像素的点乘和误差;采用积分图像方法计算平方和误差,采用快速傅里叶变换FFT计算点乘和误差;根据候选纹理块集合中的每个候选纹理块对应的SSD确定最优纹理块;将上述最优纹理块与目标纹理图中已合成纹理块进行合成,重复以上步骤,直至完成目标纹理图的纹理合成。
根据本发明实施例的另一方面,提供了一种基于块的纹理合成装置,包括:重叠区查找模块,用于对纹理样本图中确定的候选纹理块集合中的每个候选纹理块,按照重叠区的宽度查找其与在目标纹理图中已合成纹理块的重叠区;重叠区误差计算模块,用于将已合成纹理块中的重叠区记为B1 ov,将候选纹理块中的重叠区记为B2 ov,计算重叠区对应像素的颜色差值平方和
Figure BDA0000387443040000041
其中,
Figure BDA0000387443040000042
是候选纹理块和目标纹理图中已合成纹理区域相重叠部分中每个像素值的平方和误差;
Figure BDA0000387443040000043
是候选纹理块和目标纹理图中已合成纹理区域重叠区中每对对应像素的点乘和误差;具体误差计算模块,用于采用积分图像方法计算重叠区误差计算模块的SSD中的平方和误差,采用快速傅里叶变换FFT计算SSD中的点乘和误差;最优纹理块确定模块,用于根据具体误差计算模块得到的候选纹理块集合中的每个候选纹理块对应的SSD确定最优纹理块;纹理合成模块,用于将上述最优纹理块与目标纹理图中已合成纹理块进行合成,重复以上步骤,直至完成目标纹理图的纹理合成。
本发明实施例通过对SSD的计算公式重构为平方和项和点乘项两项之和,对平方和项采用积分图像方法进行快速计算,对于点乘项采用FFT进行计算,在保证纹理合成效果的同时,有效地解决了SSD误差计算花费时间较长的问题,从而显著提高了纹理合成的速度。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明实施例的基于块的纹理合成方法的流程图;
图2(a)示出了本发明实施例的重叠区示意图;图2(b)至(d)分别示出了本发明实施例的垂直、水平和L型重叠区示意图;
图3示出了本发明实施例的基于块的纹理合成装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例针对按块纹理合成方法的运算时间主要花费在计算SSD误差上的问题,提出基于积分图像和FFT(Fast FourierTransform,快速傅立叶变换,也称为FFT快速卷积)的纹理合成加速方法。将SSD误差等价表示为平方和误差和点乘和误差,对平方和误差采用积分图像的方法进行计算,对点乘和误差采用FFT快速卷积的方法进行计算,从而在保证最终合成效果的同时,提高了纹理合成的速度。为了便于理解,下面先简单介绍一下积分图像和FFT快速卷积的原理。
一、积分图像的相关原理
积分图像的定义为:积分图像中的任意一点(i,j)的值是指从原图像的左上角到这个点的所构成的矩形区域内所有像素点(或直接称为“像素”)的灰度值或平方和之和,用ii(i,j)表示。
ii ( i , j ) = Σ i ′ ≤ i , j ′ ≤ j p ( i ′ , j ′ )
ii ( i , j ) = Σ i ′ ≤ i , j ′ ≤ j p 2 ( i ′ , j ′ )
其中:p(i',j')表示原图像中(i',j')点的灰度值。
ii(i,j)的值可按以下4种情况进行计算:
(1)当i=0,j=0时:
s(i,j)=p(i,j)
ii(i,j)=s(i,j)
(2)当i>0,j=0时:
s(i,j)=p(i,j)
ii(i,j)=ii(i-1,j)+s(i,j)
(3)当i=0,j>0时:
s(i,j)=s(i,j-1)+p(i,j)
ii(i,j)=s(i,j)
(4)当i>0,j>0时:
s(i,j)=s(i,j-1)+p(i,j)
ii(i,j)=ii(i-1,j)+s(i,j)
在计算一幅图像所对应的积分图像时,只需按上述公式将原图像遍历一遍即可。借助积分图像,计算一定区域内所有像素值的和或平方和时,速度非常快,当区域的四个点为A,B,C和D时,则区域内像素值和或平方和用公式∑=A-B-C+D计算,由此可以看出,积分图像作为一种中间图像,只用3个加减运算便可完成像素值的求和过程,大大减低了计算复杂度。
二、FFT快速卷积的相关原理
FFT快速卷积的基本原理为:设x1(n)、x2(n)是长度分别为N1和N2的有限长序列,为保证线性卷积的有效性,首先对它们进行补零,使其长度为L=N1+N2-1,然后计算卷积
y ( n ) = x 1 ( n ) * x 2 ( n ) = Σ n = 0 L - 1 x 1 ( m ) x 2 ( n - m )
直接计算以上卷积所需乘法次数为:
md=N1·N2
当N1和N2比较大时,直接计算卷积需要花费较多时间。这时,直接卷积可以借助FFT变换到频域完成,分为以下几个步骤:
(1)求X1(k)=DFT[x1(n)];
(2)求X2(k)=DFT[x2(n)];
(3)计算Y(k)=X1(k)·X2(k);
(4)求y(n)=IDFT[Y(k)];
该方法需要的乘法次数为
Figure BDA0000387443040000071
当N1和N2越大时,FFT求卷积的乘法次相比直接求卷积的乘法次数越少,速度比直接求卷积要快,因此,用FFT求卷积的方法被称为快速卷积。
基于上述原理,本发明实施例提供了一种基于块的纹理合成方法和装置,通过下述实施例进行描述。
参见图1所示的基于块的纹理合成方法的流程图,该方法包括以下步骤:
步骤S102,对纹理样本图中确定的候选纹理块集合中的每个候选纹理块,按照重叠区的宽度查找其与在目标纹理图中已合成纹理块的重叠区;
步骤S104,将已合成纹理块中的重叠区记为B1 ov,将候选纹理块中的重叠区记为B2 ov,计算重叠区对应像素的 SSD = Σ B 2 ov 2 - 2 Σ B 1 ov · B 2 ov ;
其中,
Figure BDA0000387443040000082
是候选纹理块和目标纹理图中已合成纹理区域相重叠部分中每个像素值的平方和误差;
Figure BDA0000387443040000083
是候选纹理块和目标纹理图中已合成纹理区域重叠区中每对对应像素的点乘和误差;
步骤S106,采用积分图像方法计算平方和误差,采用快速傅里叶变换FFT计算点乘和误差;
步骤S108,根据候选纹理块集合中的每个候选纹理块对应的SSD确定最优纹理块;
步骤S110,将上述最优纹理块与目标纹理图中已合成纹理块进行合成,重复以上步骤,直至完成目标纹理图的纹理合成。
本实施例的方法通过对SSD的计算公式重构为平方和项和点乘项两项之和,对平方和项采用积分图像方法进行快速计算,对于点乘项采用FFT进行计算,在保证纹理合成效果的同时,有效地解决了SSD误差计算花费时间较长的问题,从而显著提高了纹理合成的速度。
上述合成方法中SSD误差计算公式进行了重构,该重构的基本思想为将SSD误差表示为平方和误差和点乘和误差。即对SSD误差计算公式可表示为:
Error = Σ ( B 1 ov - B 2 ov ) 2 = Σ B 1 ov 2 + Σ B 2 ov 2 - 2 Σ B 1 ov · B 2 ov
其中,第1项平方和误差来自于目标纹理图中已合成好的纹理区域,它对每一个候选纹理块来说都是一样的,所以可以把它去掉,误差公式只保留后两项。经过修改后的误差公式为:
Error _ new = Σ B 2 ov 2 - 2 Σ B 1 ov · B 2 ov
上式中的第1项是候选纹理块和目标纹理图中已合成纹理区域相重叠部分中每个像素值平方和误差,第2项是候选纹理块和目标纹理图中已合成纹理区域重叠区中每对对应像素的点乘和误差。
为了加快纹理合成的速度,可以预先把SSD误差中的平方和误差项的计算变为查表运算。通过深入分析按块纹理合成方法可知,其候选纹理块集合是通过对纹理样本图按候选纹理块大小进行遍历后得到的。每个候选纹理块在目标纹理图中的位置有三种:第1行、第1列和其他。第1行对应垂直重叠区,第1列对应水平重叠区,其他位置对应L型重叠区。在纹理合成参数设定好后,先计算每一个候选纹理块相对于三种不同形状的重叠区的平方和误差,这样对于整个候选纹理块集合,就构建了三张平方和误差表,它们分别为候选纹理块集合对应垂直重叠区、水平重叠区和L型重叠区的平方和误差表。当把这三张误差表做好之后,在计算SSD误差的平方和项时,即可根据候选纹理块的位置和重叠区的形状就可在表中找到对应的平方和误差,把原来平方和的乘加运算改为了查表运算,从而大大节约运算时间。基于此,上述采用积分图像方法计算平方和误差可以包括:根据候选纹理块在纹理样本图中的位置和重叠区的形状查找对应的平方和误差表,得到候选纹理块和目标纹理图中已合成纹理区域相重叠部分中每个像素值的平方和误差;其中,平方和误差表为预先根据纹理合成参数,采用积分图像方法计算每一个候选纹理块相对于垂直重叠区、水平重叠区和L型重叠区的平方和误差,并分别存入垂直重叠区、水平重叠区和L型重叠区对应的平方和误差表中。
上述使用积分图像计算平方和误差表的基本过程为:
(1)计算纹理样本图中每个像素点的平方值,然后计算出纹理样本图的积分图像并保存。
(2)设定合适的纹理合成参数,这些参数有候选纹理块的大小、重叠区占候选纹理块的比例、目标纹理图的大小等,这些参数决定了候选纹理块的个数和在纹理样本图中的位置。由于候选纹理块与目标纹理图中已合成纹理区域有垂直、水平和L型三种重叠区,所以可以设定三张平方和误差表分别存放垂直、水平和L型重叠区平方和误差,设它们的表名分别为squareError_Vert,squareError_Hori和squareError_L,则利用积分图形,可得到各自的计算公式。
下面以图2(a)所示的重叠区示意图为例,其中包括垂直、水平和L型三种重叠区,以图2(b)所示的垂直重叠区示意图为例,计算垂直重叠区的平方和误差可以采用公式:
squareErro r_Vert=H-G-B+A;
以图2(c)所示的水平重叠区示意图为例,计算水平重叠区的平方和误差可以采用公式:
squareErro r_Hori=F-D-C+A;
以图2(d)所示的L型重叠区示意图为例,计算L型重叠区的平方和误差可以采用公式:
squareErro r_L=squareErro r_Hori+squareErro r_Vert-(E-D-B+A);
其中,上述B1和B2均为候选纹理块,A、B、C、D、E、F、G、H均为候选纹理块与已合成纹理块重叠区的各个顶角的像素点;上述公式中只需3~5次加减运算就可算出SSD中的平方和误差。
基于上述图例说明可知,上述采用积分图像方法计算每一个候选纹理块相对于垂直重叠区、水平重叠区和L型重叠区的平方和误差可以包括:计算纹理样本图中每个像素点的平方值,根据每个像素点的平方值生成纹理样本图的积分图像;根据该积分图像采用下述方法计算每一个候选纹理块相对于垂直重叠区、水平重叠区和L型重叠区的平方和误差:1)垂直重叠区平方和误差计算:用垂直重叠区右下角像素点的积分图像减去右上角像素点的积分图像,再减去左下角像素点的积分图像,加上左上角像素点的积分图像;2)水平重叠区平方和误差计算:用水平重叠区右下角像素点的积分图像减去右上角像素点的积分图像,再减去左下角像素点的积分图像,然后加上左上角像素点的积分图像;3)L型重叠区平方和误差计算:用垂直重叠区平方和误差加上水平重叠区平方和误差,再减去交叠区平方和误差;其中,交叠区为垂直重叠区和水平重叠区的重合区,交叠区平方和误差等于交叠区右下角像素点的积分图像减去重叠区右上角像素点的积分图像,再减去重叠区左下角像素点的积分图像,然后加上重叠区左上角像素点的积分图像。
上述L型重叠区平方和误差计算可以看作是:先将L型重叠区分解为一个垂直重叠区和一个水平重叠区,分别用上述方法计算垂直重叠区平方和误差和水平重叠区平方和误差;然后计算垂直重叠区和水平重叠区的交叠区的平方和误差。
使用FFT快速卷积的方法对SSD误差中的点乘和误差项进行计算的基本思想为:寻找最优匹配块的过程类似于目标纹理块中已合成纹理块在纹理样本图中按候选纹理块大小对纹理样本图进行相关运算,而相关运算在对运算量反转后可以用卷积运算来实现。当参与卷积运算的离散点数目较大时,可以采用FFT加速卷积运算来提高运算速度。因此在求SSD误差中的点乘和误差项时,可以利用FFT快速卷积方法加速该计算过程。
具体地,采用FFT计算点乘和误差包括以下过程:
a.构造卷积模板:根据已合成纹理块在目标纹理图中的位置,确定其重叠区的形状,按候选纹理尺寸构造卷积模板。该卷积模板重叠区部分的像素值为已合成纹理块的像素值,重叠区以外的像素值赋为0。有三类模板,垂直型模板、水平型模板和L型模板。
b.反转卷积模板:在用卷积计算相关性时,需要对卷积模板进行反转后再卷积,这样等价于求相关性运算。
c.扩展上述反转后的卷积模板的尺寸至纹理样本图的尺寸。
d.对上述卷积模板和纹理样本图应用卷积定理进行计算:分别对纹理样本图和扩展后的卷积模板进行二维FFT运算,得到它们的频域信号,在频域进行乘法计算后再做二维FFT反变换,得到两者卷积的结果。从卷积结果矩阵中截出原始卷积模板与纹理样本图完全重合时得到的卷积值子矩阵,该矩阵保存的结果正是当前合成过程中,所有候选纹理块与纹理样本图在重叠区内对应像素的点乘和误差。
由于采用FFT快速卷积算法,使点乘项误差的计算速度得到了大幅提升。
对应于上述方法,本发明实施例还提供了一种基于块的纹理合成装置,参见图3,该装置包括以下模块:
重叠区查找模块31,用于对纹理样本图中确定的候选纹理块集合中的每个候选纹理块,按照重叠区的宽度查找其与在目标纹理图中已合成纹理块的重叠区;
重叠区误差计算模块32,用于将已合成纹理块中的重叠区记为B1 ov,将候选纹理块中的重叠区记为B2 ov,计算重叠区对应像素的
Figure BDA0000387443040000131
其中,
Figure BDA0000387443040000132
是候选纹理块和目标纹理图中已合成纹理区域相重叠部分中每个像素值的平方和误差;
Figure BDA0000387443040000133
是候选纹理块和目标纹理图中已合成纹理区域重叠区中每对对应像素的点乘和误差;
具体误差计算模块33,用于采用积分图像方法计算重叠区误差计算模块32的SSD中的平方和误差,采用FFT计算SSD中的点乘和误差;
最优纹理块确定模块34,用于根据具体误差计算模块33得到的候选纹理块集合中的每个候选纹理块对应的SSD确定最优纹理块;
纹理合成模块35,用于将最优纹理块与目标纹理图中已合成纹理块进行合成,重复以上步骤,直至完成目标纹理图的纹理合成。
本实施例的装置通过对SSD的计算公式重构为平方和项和点乘项两项之和,对平方和项采用积分图像方法进行快速计算,对于点乘项采用FFT进行计算,在保证纹理合成效果的同时,有效地解决了SSD误差计算花费时间较长的问题,从而显著提高了纹理合成的速度。
优选地,上述具体误差计算模块包括:平方和误差查表单元,用于根据候选纹理块在纹理样本图中的位置和重叠区的形状查找对应的平方和误差表,得到候选纹理块和目标纹理图中已合成纹理区域相重叠部分中每个像素值的平方和误差;其中,平方和误差表为预先根据纹理合成参数,采用积分图像方法计算每一个候选纹理块相对于垂直重叠区、水平重叠区和L型重叠区的平方和误差,并分别存入垂直重叠区、水平重叠区和L型重叠区对应的平方和误差表中。
优选地,上述平方和误差查表单元包括:积分图像生成子单元,用于计算纹理样本图中每个像素点的平方值,根据每个像素点的平方值生成纹理样本图的积分图像;平方和误差计算子单元,用于根据该积分图像采用下述方法计算每一个候选纹理块相对于垂直重叠区、水平重叠区和L型重叠区的平方和误差:1)垂直重叠区平方和误差计算:用垂直重叠区右下角像素点的积分图像减去右上角像素点的积分图像,再减去左下角像素点的积分图像,加上左上角像素点的积分图像;2)水平重叠区平方和误差计算:用水平重叠区右下角像素点的积分图像减去右上角像素点的积分图像,再减去左下角像素点的积分图像,然后加上左上角像素点的积分图像;3)L型重叠区平方和误差计算:用垂直重叠区平方和误差加上水平重叠区平方和误差,再减去交叠区平方和误差;其中,交叠区为垂直重叠区和水平重叠区的重合区,交叠区平方和误差等于交叠区右下角像素点的积分图像减去重叠区右上角像素点的积分图像,再减去重叠区左下角像素点的积分图像,然后加上重叠区左上角像素点的积分图像。优选地,上述具体误差计算模块还包括:卷积模板构造单元,用于根据已合成纹理块在目标纹理图中的位置,确定当前纹理合成过程的重叠区形状,根据重叠区形状和候选纹理块的尺寸构造卷积模板,其中,卷积模板重叠区部分的像素值为已合成纹理块的像素值,重叠区以外的像素值赋为0;卷积模板为垂直型模板、水平型模板或L型模板;模板反转与扩展单元,用于对卷积模板构造单元构造的卷积模板进行反转;将反转后的卷积模板的尺寸扩展至纹理样本图的尺寸;卷积运算单元,用于分别对纹理样本图和模板反转与扩展单元扩展后的卷积模板进行二维FFT运算,得到频域信号;在频域内进行乘法计算后再做二维FFT反变换,得到卷积的结果矩阵;点乘和误差确定单元,用于从卷积运算单元得到的卷积的结果矩阵中截出原始卷积模板与纹理样本图完全重合时得到的卷积值子矩阵,卷积值子矩阵保存的结果即为当前合成过程中,所有候选纹理块与纹理样本图在重叠区内对应像素点的点乘和误差。
上述实施例由于使用了积分图像和FFT快速卷积的相关技术,有效地解决了SSD误差计算花费时间较长的问题,从而显著提高了纹理合成的速度。
下面给出上述实施例的技术方案在纹理合成时,速度提升率分析:假设纹理样本图、候选纹理块、目标纹理图是正方形,合成时间从合成参数设定好后开始计算,合成的运算次数也只考虑合成参数设定好后开始合成的运算次数,在之前发生的运算都理解为预处理过程。设合成参数如下:
sampleWidth=N,blockWidth=M,overlap_ratio=p
上面等式中sampleWidth为纹理样本图的宽度、blockWidth为纹理块的宽度、overlap_ratio为重叠区占纹理块的比例,且此处overlap_ratio等于p,意思是重叠区占合成纹理块的1/p。
设候选纹理块的数目为CBN,它可根据以上参数,通过下式计算得到:
CBN=(sampleWidth-blockWidth+1)2
直接用SSD误差公式计算误差的方法为:SSD误差计算包括平方运算、求和运算。设直接用SSD误差公式计算误差的乘法次数为kd,则
kd=[2×(blockWidth×overlapWidth)-overlapWidth2]×CBN
把overlap_ratio=p代入上式,得:
k d = 2 p - 1 p 2 blockWidth 2 × CBN
上式可以看出,直接计算SSD的复杂度为 o ( 2 p - 1 p 2 blockWidth 2 × CBN ) .
采用上述积分图像和FFT快速卷积计算SSD误差的方法,其运算量主要来自于三个方面:积分图计算、平方和误差计算、点乘和误差计算。
a.积分图计算:
运算的主要开销来自于平方值的计算,需sampleWidth2次乘法,但因为这个过程在合成参数设定前就可以做,所以可以不计入合成时间的计算。
b.平方和误差计算:
设平方和误差计算需要的加减次数为ks,按最大的L型重叠区加减法次数计算,则
ks=3×(5×CBN)
但因为它是加减法的计算次数,所以该过程会非常快,可以在整个合成时间中忽略不计。
c.点积和误差计算:
由于进行FFT运算的是二维图片,所要进行的是二维傅里叶变换,设二维图片边长像素点有N1个,则参与计算的离散点有
Figure BDA0000387443040000163
个,N1是2的幂次方,加上频域的乘法运算,FFT快速卷积部分的计算复杂度为 o ( 2 N 1 2 log 2 N 1 + N 1 2 ) .
设一组实际参数为:
sampleWidth=128,blockWidth=45,overlap_ratio=3,CBN=842
则直接计算SSD的复杂度为
Figure BDA0000387443040000172
而积分图像和FFT加速法的复杂度为o(2*(128)2log2128+(128)2)=o(15×(128)2),上述实施例的方式与相关技术中的乘法次数比约为
Figure BDA0000387443040000173
,由此可以看出,上述实施例的方式非常节省运算时间。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于块的纹理合成方法,其特征在于,包括:
对纹理样本图中确定的候选纹理块集合中的每个候选纹理块,按照重叠区的宽度查找其与在目标纹理图中已合成纹理块的重叠区;
将所述已合成纹理块中的重叠区记为B1 ov,将所述候选纹理块中的重叠区记为B2 ov,计算所述重叠区对应像素的颜色差值平方和 SSD = Σ B 2 ov 2 - 2 Σ B 1 ov · B 2 ov ;
其中,
Figure FDA0000387443030000012
是所述候选纹理块和所述目标纹理图中已合成纹理区域相重叠部分中每个像素值的平方和误差;
Figure FDA0000387443030000013
是所述候选纹理块和所述目标纹理图中已合成纹理区域重叠区中每对对应像素的点乘和误差;
采用积分图像方法计算所述平方和误差,采用快速傅里叶变换FFT计算所述点乘和误差;
根据所述候选纹理块集合中的每个候选纹理块对应的SSD确定最优纹理块;
将所述最优纹理块与所述目标纹理图中已合成纹理块进行合成,重复以上步骤,直至完成所述目标纹理图的纹理合成。
2.根据权利要求1所述的方法,其特征在于,采用积分图像方法计算所述平方和误差包括:
根据所述候选纹理块在所述纹理样本图中的位置和所述重叠区的形状查找对应的平方和误差表,得到所述候选纹理块和所述目标纹理图中已合成纹理区域相重叠部分中每个像素值的平方和误差;
其中,所述平方和误差表为预先根据纹理合成参数,采用积分图像方法计算每一个候选纹理块相对于垂直重叠区、水平重叠区和L型重叠区的平方和误差,并分别存入所述垂直重叠区、所述水平重叠区和所述L型重叠区对应的平方和误差表中。
3.根据权利要求2所述的方法,其特征在于,采用积分图像方法计算每一个候选纹理块相对于垂直重叠区、水平重叠区和L型重叠区的平方和误差包括:
计算纹理样本图中每个像素点的平方值,根据所述每个像素点的平方值生成所述纹理样本图的积分图像;
根据所述积分图像采用下述方法计算每一个候选纹理块相对于垂直重叠区、水平重叠区和L型重叠区的平方和误差:
垂直重叠区平方和误差计算:用垂直重叠区右下角像素点的积分图像减去右上角像素点的积分图像,再减去左下角像素点的积分图像,加上左上角像素点的积分图像;
水平重叠区平方和误差计算:用水平重叠区右下角像素点的积分图像减去右上角像素点的积分图像,再减去左下角像素点的积分图像,然后加上左上角像素点的积分图像;
L型重叠区平方和误差计算:用垂直重叠区平方和误差加上水平重叠区平方和误差,再减去交叠区平方和误差;其中,所述交叠区为垂直重叠区和水平重叠区的重合区,所述交叠区平方和误差等于所述交叠区右下角像素点的积分图像减去所述重叠区右上角像素点的积分图像,再减去所述重叠区左下角像素点的积分图像,然后加上所述重叠区左上角像素点的积分图像。
4.根据权利要求1所述的方法,其特征在于,采用FFT计算所述点乘和误差包括:
根据已合成纹理块在目标纹理图中的位置,确定当前纹理合成过程的重叠区形状,根据所述重叠区形状和候选纹理块的尺寸构造卷积模板,其中,所述卷积模板重叠区部分的像素值为已合成纹理块的像素值,重叠区以外的像素值赋为0;所述卷积模板为垂直型模板、水平型模板或L型模板;
对所述卷积模板进行反转;
将所述反转后的卷积模板的尺寸扩展至所述纹理样本图的尺寸;
分别对所述纹理样本图和扩展后的卷积模板进行二维FFT运算,得到频域信号;在频域内进行乘法计算后再做二维FFT反变换,得到卷积的结果矩阵;
从所述卷积的结果矩阵中截出原始卷积模板与纹理样本图完全重合时得到的卷积值子矩阵,所述卷积值子矩阵保存的结果即为当前合成过程中,所有候选纹理块与所述纹理样本图在重叠区内对应像素点的点乘和误差。
5.一种基于块的纹理合成装置,其特征在于,包括:
重叠区查找模块,用于对纹理样本图中确定的候选纹理块集合中的每个候选纹理块,按照重叠区的宽度查找其与在目标纹理图中已合成纹理块的重叠区;
重叠区误差计算模块,用于将所述已合成纹理块中的重叠区记为B1 ov,将所述候选纹理块中的重叠区记为B2 ov,计算所述重叠区对应像素的颜色差值平方和
Figure FDA0000387443030000031
其中,
Figure FDA0000387443030000032
是所述候选纹理块和所述目标纹理图中已合成纹理区域相重叠部分中每个像素值的平方和误差;
Figure FDA0000387443030000033
是所述候选纹理块和所述目标纹理图中已合成纹理区域重叠区中每对对应像素的点乘和误差;
具体误差计算模块,用于采用积分图像方法计算所述重叠区误差计算模块的SSD中的所述平方和误差,采用快速傅里叶变换FFT计算SSD中的所述点乘和误差;
最优纹理块确定模块,用于根据所述具体误差计算模块得到的所述候选纹理块集合中的每个候选纹理块对应的SSD确定最优纹理块;
纹理合成模块,用于将所述最优纹理块与所述目标纹理图中已合成纹理块进行合成,重复以上步骤,直至完成所述目标纹理图的纹理合成。
6.根据权利要求5所述的装置,其特征在于,所述具体误差计算模块包括:
平方和误差查表单元,用于根据所述候选纹理块在所述纹理样本图中的位置和所述重叠区的形状查找对应的平方和误差表,得到所述候选纹理块和所述目标纹理图中已合成纹理区域相重叠部分中每个像素值的平方和误差;
其中,所述平方和误差表为预先根据纹理合成参数,采用积分图像方法计算每一个候选纹理块相对于垂直重叠区、水平重叠区和L型重叠区的平方和误差,并分别存入所述垂直重叠区、所述水平重叠区和所述L型重叠区对应的平方和误差表中。
7.根据权利要求6所述的装置,其特征在于,所述平方和误差查表单元包括:
积分图像生成子单元,用于计算纹理样本图中每个像素点的平方值,根据所述每个像素点的平方值生成所述纹理样本图的积分图像;
平方和误差计算子单元,用于根据所述积分图像采用下述方法计算每一个候选纹理块相对于垂直重叠区、水平重叠区和L型重叠区的平方和误差:
垂直重叠区平方和误差计算:用垂直重叠区右下角像素点的积分图像减去右上角像素点的积分图像,再减去左下角像素点的积分图像,加上左上角像素点的积分图像;
水平重叠区平方和误差计算:用水平重叠区右下角像素点的积分图像减去右上角像素点的积分图像,再减去左下角像素点的积分图像,然后加上左上角像素点的积分图像;
L型重叠区平方和误差计算:用垂直重叠区平方和误差加上水平重叠区平方和误差,再减去交叠区平方和误差;其中,所述交叠区为垂直重叠区和水平重叠区的重合区,所述交叠区平方和误差等于所述交叠区右下角像素点的积分图像减去所述重叠区右上角像素点的积分图像,再减去所述重叠区左下角像素点的积分图像,然后加上所述重叠区左上角像素点的积分图像。
8.根据权利要求5所述的装置,其特征在于,所述具体误差计算模块包括:
卷积模板构造单元,用于根据已合成纹理块在目标纹理图中的位置,确定当前纹理合成过程的重叠区形状,根据所述重叠区形状和候选纹理块的尺寸构造卷积模板,其中,所述卷积模板重叠区部分的像素值为已合成纹理块的像素值,重叠区以外的像素值赋为0;所述卷积模板为垂直型模板、水平型模板或L型模板;
模板反转与扩展单元,用于对所述卷积模板构造单元构造的所述卷积模板进行反转;将所述反转后的卷积模板的尺寸扩展至所述纹理样本图的尺寸;
卷积运算单元,用于分别对所述纹理样本图和所述模板反转与扩展单元扩展后的卷积模板进行二维FFT运算,得到频域信号;在频域内进行乘法计算后再做二维FFT反变换,得到卷积的结果矩阵;
点乘和误差确定单元,用于从所述卷积运算单元得到的所述卷积的结果矩阵中截出原始卷积模板与纹理样本图完全重合时得到的卷积值子矩阵,所述卷积值子矩阵保存的结果即为当前合成过程中,所有候选纹理块与所述纹理样本图在重叠区内对应像素点的点乘和误差。
CN2013104415998A 2013-09-25 2013-09-25 基于块的纹理合成方法和装置 Pending CN103440618A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013104415998A CN103440618A (zh) 2013-09-25 2013-09-25 基于块的纹理合成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013104415998A CN103440618A (zh) 2013-09-25 2013-09-25 基于块的纹理合成方法和装置

Publications (1)

Publication Number Publication Date
CN103440618A true CN103440618A (zh) 2013-12-11

Family

ID=49694310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013104415998A Pending CN103440618A (zh) 2013-09-25 2013-09-25 基于块的纹理合成方法和装置

Country Status (1)

Country Link
CN (1) CN103440618A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978708A (zh) * 2015-04-24 2015-10-14 云南大学 交互式绝版套色木刻数字合成技术
CN106157291A (zh) * 2015-04-22 2016-11-23 阿里巴巴集团控股有限公司 识别重复纹理的方法和装置
CN110855882A (zh) * 2019-11-01 2020-02-28 RealMe重庆移动通信有限公司 拍摄处理方法及装置、存储介质和电子设备
CN111915702A (zh) * 2019-05-10 2020-11-10 浙江大学 一种图像处理方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6593933B1 (en) * 2000-01-13 2003-07-15 Microsoft Corporation Block-based synthesis of texture in computer rendered images
CN102214362A (zh) * 2011-04-27 2011-10-12 天津大学 基于块的快速图像混合方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6593933B1 (en) * 2000-01-13 2003-07-15 Microsoft Corporation Block-based synthesis of texture in computer rendered images
CN102214362A (zh) * 2011-04-27 2011-10-12 天津大学 基于块的快速图像混合方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
普园媛: "云南重彩画艺术风格的数字模拟及合成技术研究", 《中国博士学位论文全文数据库 信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106157291A (zh) * 2015-04-22 2016-11-23 阿里巴巴集团控股有限公司 识别重复纹理的方法和装置
CN106157291B (zh) * 2015-04-22 2019-07-12 阿里巴巴集团控股有限公司 识别重复纹理的方法和装置
CN104978708A (zh) * 2015-04-24 2015-10-14 云南大学 交互式绝版套色木刻数字合成技术
CN104978708B (zh) * 2015-04-24 2019-11-01 云南大学 交互式绝版套色木刻数字合成方法
CN111915702A (zh) * 2019-05-10 2020-11-10 浙江大学 一种图像处理方法和装置
CN110855882A (zh) * 2019-11-01 2020-02-28 RealMe重庆移动通信有限公司 拍摄处理方法及装置、存储介质和电子设备

Similar Documents

Publication Publication Date Title
Konolige et al. Sparse Sparse Bundle Adjustment.
CN103907109B (zh) 为图像处理目的用滤波器应用卷积的快速数值逼近
CN103440618A (zh) 基于块的纹理合成方法和装置
EP2889830A1 (en) Image enlargement method and apparatus
Zhang et al. Image inpainting based on wavelet decomposition
DE102015114162A1 (de) Effiziente Interpolation
CN102682424B (zh) 基于边缘方向差值的图像放大处理方法
Iosevich et al. Finite field restriction estimates for the paraboloid in high even dimensions
González-Díaz et al. Chain homotopies for object topological representations
Molina-Abril et al. Connectivity calculus of fractal polyhedrons
US9460549B2 (en) Method and device for generating perspective image
CN103218784B (zh) 基于空间填充曲线和极值点的快速图像滤波方法
CN104239874A (zh) 一种器官血管识别方法及装置
Zhou et al. An Efficient Implementation of the Hough Transform using DSP slices and block RAMs on the FPGA
CN103377463A (zh) 一种滤镜处理的方法及装置
Heuer An iterative substructuring method for the-version of the boundary element method for hypersingular integral operators in three dimensions
Hajdu et al. Finding well approximating lattices for a finite set of points
Bercu et al. Iterative geometric structures
CN103310436A (zh) 基于克利福德的三维区域生长方法
CN117132767B (zh) 一种小目标检测方法、装置、设备及可读存储介质
CN104794682A (zh) 一种基于变换域的图像插值方法与装置
Schouten et al. Incremental distance transforms (IDT)
Denton Multiscale Aggregation Over Sliding Windows
Angelini et al. Drawing non-planar graphs with crossing-free subgraphs
Grasmair et al. Adaptive multi-penalty regularization based on a generalized lasso path

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20131211

RJ01 Rejection of invention patent application after publication