專利名稱::一種基于復(fù)用的紋理合成方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及紋理合成,屬于計(jì)算機(jī)算法、計(jì)算機(jī)圖形技術(shù)、圖象處理技術(shù)、紋理生成
技術(shù)領(lǐng)域:
,具體說是一種基于復(fù)用的紋理合成方法。
背景技術(shù):
:紋理合成技術(shù)能根據(jù)一小塊樣本生成視覺上很相似的大塊樣本,這樣可有效重用光照和色彩的計(jì)算或測(cè)量的結(jié)果,以便以較少的開銷生成高質(zhì)量的繪制結(jié)果。這種技術(shù)在真實(shí)感繪制、虛擬現(xiàn)實(shí)等很多領(lǐng)域有著很重要而廣泛的應(yīng)用。目前紋理合成技術(shù)主要是根據(jù)馬爾可夫鏈概率模型進(jìn)行計(jì)算,即任一位置的色彩是由它附近一定范圍內(nèi)的其它色彩分布所決定的。而就合成順序而言,紋理合成技術(shù)分為串行合成方法以及并行合成方法。串行合成技術(shù)每次生成一個(gè)像素或者包含若干像素的紋理塊,一般來說速度相對(duì)較慢。而并行合成技術(shù),同時(shí)生成多個(gè)像素或紋理塊,可有效利用GPU等圖形硬件進(jìn)行加速。目前,合成質(zhì)量最好的方法是進(jìn)行全局優(yōu)化計(jì)算的紋理優(yōu)化方法(textureoptimization)(KwatraV,EssaI,BobickA,etal.Textureoptimizationforexample-basedsynthesis.ACMTrans.Graph,2005,24(3):795_802),而合成速度最快的方法是并行可控紋理合成方法(parallelcontrollabletexturesynthesis)(LefebvreS,HoppeH.Parallelcontrollabletexturesynthesis.ACMTrans.Graph.,2005,24(3)777-786)以及紋理塊間隔分布的紋理合成方法(XinChen,WenchengWang.Texturesynthesisbyinterspersingpatchesinachessboardpattern.InVRCAI'09Proceedingsofthe8thInternationalConferenceonVirtualRealityContinuumanditsApplicationsinIndustry(NewYork,NY,USA,2009),ACM,pp.133-138.)。其中,后者能實(shí)時(shí)合成1024*1024象素的紋理,較適于大紋理的合成,但速度仍然有限,且由于GPU顯存空間的限制,不利于生成特大尺寸的紋理。從紋理合成的應(yīng)用需求來看,實(shí)時(shí)生成高質(zhì)量的大紋理是必須的,因此,實(shí)時(shí)生成高質(zhì)量的紋理合成技術(shù)近年來一直是國際上的熱點(diǎn)研究?jī)?nèi)容。
發(fā)明內(nèi)容為解決現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明提出一種基于復(fù)用的紋理合成方法,可以快速的生成更大的紋理。在本發(fā)明中,“紋理塊”指的是對(duì)樣本紋理分塊后得到的具有一定尺寸的矩形塊體,紋理塊包括位于紋理塊中部的主體部分和位于主體部分周圍的重疊部分。圖1表示一個(gè)紋理塊的示意圖,在該紋理塊中,紋理塊尺寸為9*6(單位像素,下同),主體部分尺寸為7*4,重疊部分為主體部分四周寬度為1的矩形環(huán)。下面提到的紋理塊的劃分和填充均按照紋理塊主體部分的尺寸來進(jìn)行,即劃分紋理塊時(shí),分割線是兩個(gè)相鄰的紋理塊共用的主體部分邊線,填充紋理塊時(shí),兩個(gè)相鄰的紋理塊共用主體部分邊線。在本發(fā)明中,“紋理相位”的定義和處理如下仿照周期函數(shù)的描述,在確定一個(gè)起始位置后,以生成紋理塊的網(wǎng)格尺寸對(duì)樣本紋理進(jìn)行一次網(wǎng)格大小均勻劃分時(shí)所得紋理塊,稱為是同一相位的紋理塊;起始位置不同且所得紋理塊不重合的劃分,稱為不同相位的紋理塊劃分;若兩種劃分的分割線靠近時(shí),就稱這兩種劃分所得的紋理塊有相近的相位。圖2表示從一個(gè)樣本紋理獲得的2個(gè)紋理相位的紋理塊,即實(shí)線矩形框表示的紋理塊是屬于一個(gè)相位的,而虛線矩形框表示的紋理塊是屬于另一個(gè)相位的。為了達(dá)到本發(fā)明的技術(shù)目的,本發(fā)明采用如下技術(shù)方案a)分析樣本紋理,找到能反映其全局性紋理特征變化的紋理塊主體部分尺寸,和能便于約束選擇紋理塊的重疊部分的尺寸大??;b)按照a)所得的尺寸,選取合適的紋理塊尺寸,即設(shè)主體部分尺寸為a*b,而重疊部分的寬度為t,則紋理塊的大小為(a+t/2)*(b+t/2);在目標(biāo)紋理上,以紋理塊間隔分布的合成方法生成一個(gè)小塊的紋理,生成的紋理可較好地反映樣本紋理的整體特征及周期性變化情況,具體的合成方法將在后邊介紹;c)選取更大的紋理塊尺寸,即主體部分尺寸變?yōu)?amp;3柏)*(13補(bǔ)),其中?3^13均為正整數(shù),且隨著步驟c)復(fù)用次數(shù)增加而單調(diào)變大,而重疊區(qū)域?qū)挾萾則保持不變;從步驟b)已合成紋理區(qū)域中根據(jù)相位相近的原則選取一組新的紋理塊,構(gòu)成備選集M,這些新的紋理塊包含有整數(shù)個(gè)上一次合成時(shí)所選取尺寸的紋理塊,且這些尺寸的紋理塊具有相近的相位,并與初始合成時(shí)(即步驟b中)選定的相位相近,這樣,M中的紋理塊就可以彼此拼接,并能夠與已合成區(qū)域相適應(yīng);d)從M中任意選取紋理塊,以線性的方式填充到目標(biāo)紋理中,使已合成紋理區(qū)域的尺寸擴(kuò)大,具體的,使其長(zhǎng)寬均擴(kuò)大為原尺寸的兩倍;這里,采用的是已合成區(qū)域中選取的紋理塊,因此,可復(fù)用上一次合成時(shí)的選塊以及縫合操作;e)縫合填入的紋理塊之間的重疊區(qū)域;f)重復(fù)C)e)直至已合成區(qū)域的尺寸達(dá)到目標(biāo)紋理所需的尺寸,此時(shí),合成完成。其中,合成初始紋理區(qū)域時(shí),本發(fā)明方法采用了紋理塊間隔分布的合成方法(XinChen,WenchengWang.Texturesynthesisbyinterspersingpatchesinachessboardpattern.InVRCAI'09Proceedingsofthe8thInternationalConferenceonVirtualRealityContinuumanditsApplicationsinIndustry(NewYork,NY,USA,2009),ACM,PP.133-138.)。其具體的生成步驟如下1)分析獲得合適的塊尺寸(參照上面的步驟a),所有符合該尺寸的紋理塊構(gòu)成了集合M,將這些紋理塊按照它們各自對(duì)應(yīng)的紋理相位進(jìn)行分類組織,每一個(gè)相位對(duì)應(yīng)一個(gè)類的紋理塊;2)對(duì)M中的每個(gè)紋理塊Mi,確定所有其他紋理塊中能在Mi的上下左右四個(gè)方向上和Mi拼合的紋理塊,分別得到相容性鄰接集合Mi上、Mi下、Mi左和Mi右;比如,就Mi左而言,該集合包括M中除Mi之外的所有紋理塊中能在Mi的左側(cè)和Mi拼合的紋理塊;在此,若兩個(gè)紋理塊在重疊區(qū)域的差異小于設(shè)定的閥值,則稱它們是可拼合的。3)合成一個(gè)目標(biāo)紋理時(shí),隨機(jī)選定一個(gè)紋理相位,并得到該相位鄰近的幾個(gè)相位,然后由這幾個(gè)紋理相位相近的紋理塊組成這次合成計(jì)算的適用紋理塊集合;4)按紋理塊尺寸對(duì)目標(biāo)紋理分塊,以橫向和縱向均間隔分布的方式(類似國際象棋棋盤結(jié)構(gòu))在空白塊中填入所述適用紋理塊集合中的任意一塊,即,對(duì)于每個(gè)需要填充的空白塊,均從所述適用紋理塊集合中隨機(jī)選擇一塊;5)對(duì)于填充后剩下的空白塊,取每個(gè)空白塊四周的紋理塊相應(yīng)的相容性鄰接集合的交集中的任一紋理塊填充;當(dāng)交集為空時(shí),就選擇在這些集合中出現(xiàn)次數(shù)最多的一個(gè)紋理塊來填充。6)縫合紋理塊之間的重疊部分,以完成一個(gè)目標(biāo)紋理的生成。在本發(fā)明方法中,紋理塊主體部分的尺寸(形狀)和重疊區(qū)域的寬度對(duì)于最終的紋理合成效果具有重要影響。本發(fā)明方法進(jìn)一步根據(jù)文獻(xiàn)(王一平,王文成,吳恩華.塊紋理合成的優(yōu)化計(jì)算.計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2006,18(10)1502-1507)的方法提出通過不同尺寸的紋理塊劃分對(duì)樣本紋理周期性全局特征的反映程度來決定劃分紋理塊的尺寸。具體地,要作兩方面的度量,即紋理塊的信息包容性度量和紋理塊的紋理周期性度量,并以這兩種度量參數(shù)都比較好的紋理塊大小作為劃分的選擇。如果某種尺寸下的這兩種度量參數(shù)都是比較好的,則這該尺寸可作為紋理塊尺寸的大小。這兩種度量的具體計(jì)算步驟如下信息包容性度量一種尺寸大小的紋理塊的信息包容性,是指這樣大小的紋理塊對(duì)樣本紋理信息的包容反映程度。其計(jì)算步驟如下(1)計(jì)算樣本紋理的灰度直方圖;(2)依次取出每一個(gè)這樣大小的紋理塊,計(jì)算其灰度直方圖;(3)將紋理塊和樣本紋理的灰度直方圖歸一化,并計(jì)算它們之間的L2距離。距離越近,則紋理塊對(duì)樣本紋理的信息全局性特征有更好的反映。(4)如果該尺寸下的大部分(比如90%以上的)紋理塊都與樣本紋理的全局性特征相近,那么該尺寸下的紋理塊就具有好的信息包容性。紋理周期性度量(1)將樣本紋理均勻地劃分成比較大的網(wǎng)格,然后對(duì)每一種可能尺寸的塊,在各個(gè)網(wǎng)格中隨機(jī)選取一個(gè)這樣大小的參考?jí)K;(2)對(duì)這些參考?jí)K根據(jù)紋理結(jié)構(gòu)特征的相似性進(jìn)行分類處理,即比較兩個(gè)參考?jí)K是否相似,如果相似就歸為一類。在此的相似性計(jì)算是將兩個(gè)參考?jí)K重疊放置,然后計(jì)算它們之間的L2距離。若該距離值小于一個(gè)設(shè)定的閥值,則表明這兩個(gè)參考?jí)K相似。(3)對(duì)各個(gè)類的參考?jí)K的個(gè)數(shù)進(jìn)行平均。如果一種尺寸下的每個(gè)參考?jí)K都能找到相似的塊,并且這些類中參考?jí)K個(gè)數(shù)的平均值較高,則這種尺寸的塊對(duì)紋理信息周期性變化的反映就比較好。對(duì)重疊區(qū)域的寬度,我們進(jìn)一步按照文獻(xiàn)(王一平,王文成,吳恩華.塊紋理合成的優(yōu)化計(jì)算.計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2006,18(10)1502-1507)的方法提出對(duì)各種重疊區(qū)域的寬度進(jìn)行重疊區(qū)域約束性度量,并根據(jù)度量結(jié)果參數(shù)來決定合適的重疊區(qū)域?qū)挾?,即選用約束性強(qiáng)的寬度。對(duì)一個(gè)寬度的度量計(jì)算其步驟如下(1)將樣本紋理均勻地劃分成網(wǎng)格結(jié)構(gòu),每個(gè)網(wǎng)格都比紋理塊的尺寸大。然后在各個(gè)網(wǎng)格中分別取一個(gè)參考區(qū)域,其形狀與大小就是待考察的重疊區(qū)域?qū)挾人鶝Q定的形狀和大小。(2)對(duì)這些參考區(qū)域,采用L2距離作為相似性原則,將它們分類。(3)對(duì)每一類參考區(qū)域,采用L2距離作為匹配規(guī)則,在樣本紋理中搜索與之相似的重疊區(qū)域。(4)考察這些相似的重疊區(qū)域所對(duì)應(yīng)的紋理塊是否相似,并據(jù)此將這些紋理塊進(jìn)行分類,以得到該類參考區(qū)域可相匹配的紋理塊種類數(shù)目。在此的相似計(jì)算依然采用L2距離作為相似性度量準(zhǔn)則。(5)將該寬度下各類參考區(qū)域可相匹配的紋理塊種類數(shù)目進(jìn)行平均。均值越小,則該寬度的約束性越強(qiáng)。在本發(fā)明方法中,步驟b只生成一個(gè)較小區(qū)域的紋理,紋理塊從樣本紋理中選?。欢繕?biāo)紋理剩余部分的生成則在后續(xù)步驟cg中實(shí)現(xiàn),這里,步驟c中紋理塊從已合成區(qū)域中選取,已合成紋理區(qū)域?yàn)榻刂沟缴弦淮尾襟Ef執(zhí)行結(jié)束,所生成的紋理區(qū)域。在本發(fā)明方法中,步驟c中的紋理塊包含整數(shù)個(gè)原尺寸的紋理塊,只要其所包含的原尺寸紋理塊的相位與已合成紋理中所采用的紋理塊的相位相近,即可保證紋理塊間的匹配,因此,大大減少了選塊和縫合的操作。在本發(fā)明方法中,對(duì)于d)中選定的紋理塊進(jìn)行一定的擾動(dòng),即假定某個(gè)選定的紋理塊在已合成區(qū)域中的坐標(biāo)為(X,y),則在(x+/-S*pa*a,y+/-δ*pb*b)范圍內(nèi)任選一個(gè)紋理塊來替換原有的選定塊(X,y),這樣,在基本保證合成結(jié)果的整體分布特征的前提下,可以增強(qiáng)生成的紋理結(jié)果的隨機(jī)性;所使用的擾動(dòng)算子δ根據(jù)樣本紋理不同而采用不同的值,通常,樣本紋理特征分布的隨機(jī)性越強(qiáng),δ的取值就越大。δ的取值范圍在W,0.25]。在本發(fā)明方法中,步驟f以羽化的方式縫合紋理塊之間的重疊部分。具體而言,羽化指的是對(duì)重疊位置的象素進(jìn)行色彩的線性插值計(jì)算,C=CA*wA+CB*wB,這里,C表示融合后所得的色彩,Ca和Cb分別表示來自A紋理塊和B紋理塊在這同一象素位置的色彩,wA和wB是表示插值計(jì)算的權(quán)值,決定于該象素到重疊區(qū)域邊界的距離。在上述方法中,所有步驟都在CPU中完成。步驟b中采用的紋理塊間隔分布的合成方法是一個(gè)并行合成方法,而復(fù)用階段(步驟cg)中塊與塊之間只需相位約束,也可并行執(zhí)行,因此,上述兩個(gè)階段均可利用多線程技術(shù)進(jìn)行加速。和現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)和積極效果在于通過復(fù)用,不斷的利用已合成的結(jié)果生成后續(xù)的紋理結(jié)果,已有的選塊計(jì)算和縫合計(jì)算都可以被復(fù)用,減少了選塊和縫合的計(jì)算量,節(jié)省了合成時(shí)間;由于紋理分塊是根據(jù)紋理周期性變化特征來進(jìn)行的,因此,該方法合成的紋理也能很好地反映樣本紋理的全局周期性特征,并可以生成高質(zhì)量的紋理。雖然并行可控紋理合成方法以及紋理塊間隔分布的合成方法都取得了較高的合成速度,但它們都是在GPU上實(shí)現(xiàn)的,當(dāng)合成紋理尺寸較大或應(yīng)用條件有限時(shí)均無法合成;而本發(fā)明的方法可以在CPU上實(shí)現(xiàn)生成更大的紋理,此外,本發(fā)明方法采用了多線程的加速技術(shù),可以獲得更高的合成速度。因此本發(fā)明可以實(shí)時(shí)地生成2048*2048像素的大紋理,而這是現(xiàn)有技術(shù)做不到的。圖1表示紋理塊示意圖,其中1-主體部分,2-重疊部分;圖2表示紋理塊劃分的紋理相位示意圖,其中,實(shí)線矩形框表示的紋理塊是屬于一個(gè)相位的,而虛線矩形框表示的紋理塊是屬于另一個(gè)相位的。圖3是本發(fā)明方法一次復(fù)用的示意圖,其中,3-表示初始合成區(qū)域,4-表示從已合成結(jié)果中選取的新的紋理塊,5-表示目標(biāo)紋理。圖4是本發(fā)明方法的復(fù)用流程圖,其中E-樣本紋理;Pi-每一階段選取的紋理塊,i=0,1,2;Si-每一階段目標(biāo)紋理的生成情況,j=0,1,2。圖5表示樣本紋理和目標(biāo)紋理實(shí)例圖,其中a-樣本紋理;b-本發(fā)明得到的目標(biāo)紋理;C-全局優(yōu)化方法得到的目標(biāo)紋理;d-并行可控方法得到的目標(biāo)紋理;圖6表示樣本紋理和目標(biāo)紋理實(shí)例圖,其中a-樣本紋理;b_本發(fā)明得到的目標(biāo)紋理;C-全局優(yōu)化方法得到的目標(biāo)紋理;圖7表示樣本紋理和目標(biāo)紋理實(shí)例圖,其中a-樣本紋理;b_本發(fā)明得到的目標(biāo)紋理;C-全局優(yōu)化方法得到的目標(biāo)紋理;圖8表示樣本紋理和目標(biāo)紋理實(shí)例圖,其中a-樣本紋理;b_本發(fā)明得到的目標(biāo)紋理;C-樣本紋理;d-本發(fā)明得到的目標(biāo)紋理;圖9表示在可展平面上生成目標(biāo)紋理實(shí)例圖,其中a,b-本發(fā)明得到的目標(biāo)紋理。具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述實(shí)施例1本實(shí)施例通過128*128的樣本紋理(如圖5a所示)得到256*256(如圖5b所示)的目標(biāo)紋理。整個(gè)方法流程如圖4所示由樣本紋理E中選取Ptl大小的紋理塊,按照紋理塊間隔分布的合成方法生成Stl中所示意的已合成的紋理區(qū)域;再從Stl中已合成紋理的區(qū)域中選取卩工大小的紋理塊,與已生成的紋理區(qū)域進(jìn)行連接,生成S1中所示意的已合成的紋理區(qū)域;如果還沒有達(dá)到目標(biāo)紋理大小,繼續(xù)從S1中已合成紋理的區(qū)域中選取P2大小的紋理塊,與已生成的紋理區(qū)域連接,直至達(dá)到目標(biāo)紋理大小。具體包括下列步驟a)分析樣本紋理,找到反映其全局性紋理特征的紋理塊主體部分和重疊部分的尺寸;紋理塊主體部分尺寸通過下列方法設(shè)定i.設(shè)定各種主體部分尺寸,比如2*2、3*3、4*3、6*5、7*2等等,可目測(cè)樣本紋理作此設(shè)定;ii.根據(jù)信息包容性度量對(duì)各種尺寸排序下面以4*3為例描述信息包容性度量的內(nèi)容,其他尺寸均作相同的度量1.以4*3作為主體部分尺寸劃分樣本紋理(此時(shí)不考慮紋理周期)得到η個(gè)紋理塊;2.計(jì)算樣本紋理的灰度直方圖和所述η個(gè)紋理塊各自的灰度直方圖;3.將每個(gè)紋理塊的灰度直方圖和樣本紋理的灰度直方圖歸一化,并計(jì)算它們之間的L2距離;4.設(shè)定一個(gè)閾值印,若該L2距離小于印,則認(rèn)為該紋理塊信息包容性“好”,否則,認(rèn)為“不好”;5.計(jì)算這η個(gè)紋理塊中,信息包容性“好”的紋理塊所占的比例,把這一比例作為4*3這一尺寸的度量值。對(duì)每個(gè)尺寸均完成度量后,按照所述比例的高低對(duì)各種尺寸進(jìn)行前后排序,比如4*3,4*4,5*4,..、iii.根據(jù)紋理周期性度量對(duì)各種尺寸排序下面以4*3為例描述紋理周期性度量的內(nèi)容,其他尺寸均作相同的度量1.以4*3作為主體部分尺寸劃分樣本紋理(此時(shí)不考慮紋理周期);2.將樣本紋理均分成幾大塊,比如,每大塊的尺寸為16*16,則樣本紋理(128*128)可以分成8X8=64士夬;3.從每一塊中隨機(jī)抽取一紋理塊,得到64個(gè)紋理塊;4.將這64個(gè)紋理塊分成m類,分類的依據(jù)是同一類別中,某一個(gè)紋理塊和其余紋理塊之間的L2距離小于設(shè)定的閾值印2;5.如果每一類中都有2個(gè)以上的紋理塊,且這些類相應(yīng)的紋理塊個(gè)數(shù)的平均值比較高,則該4*3尺寸的周期性度量值就高,即可將該平均值作為該尺寸的周期性度量參數(shù)值。對(duì)每個(gè)尺寸均完成度量后,按照它們的度量參數(shù)值的大小對(duì)各種尺寸進(jìn)行先后排序,比如6*5,4*4,4*3,5*4,…。iv.根據(jù)在步驟ii和iii中均位于前列的尺寸作為所述主體部分的尺寸,比如,以4*4作為具體尺寸。紋理塊的重疊部分尺寸通過下列方法設(shè)定i.設(shè)定各種重疊部分尺寸,比如4*4的主體部分周圍寬度為1,2,3,…的正方形環(huán);ii.將樣本紋理均分成幾大塊,比如,每大塊的尺寸為16*16,則樣本紋理(128*128)可以分成8X8=64士夬;iii.對(duì)于每一種重疊部分尺寸,均作如下度量從每個(gè)大塊中隨機(jī)抽取一參考區(qū)域塊得到64個(gè)參考?jí)K,將所述64個(gè)參考?jí)K按照相似性分成u大類,對(duì)每一大類的參考?jí)K,在樣本紋理中找到所有與它們相似的區(qū)域,并由此得到由這些區(qū)域約束的紋理塊;然后,將這些紋理塊進(jìn)行相似性分類,以得到一個(gè)大類的參考?jí)K所相應(yīng)的紋理塊類的數(shù)目;最后,將各類參考?jí)K對(duì)應(yīng)的紋理塊類的數(shù)目進(jìn)行平均,即得到該寬度下重疊區(qū)域的約束能力的度量參數(shù)值。iv.按上述的度量參數(shù)值從小到大對(duì)各種重疊部分尺寸進(jìn)行前后排序,以位于前列的尺寸作為具體尺寸。b)按照a)所得的尺寸,選取合適的紋理塊尺寸,并根據(jù)紋理塊間隔分布的方法生成一個(gè)初始的紋理區(qū)域,大小為130*130(設(shè)定的該步驟的目標(biāo)大小為128*128,考慮到重疊區(qū)域的寬度2,因此生成130*130);該步驟具體的合成方法如下1)樣本紋理中符合該尺寸的所有紋理塊構(gòu)成了集合M,對(duì)于M中的任一個(gè)紋理塊Mi,確定所有其他紋理塊中能在Mi的上下左右四個(gè)方向上和Mi拼合的紋理塊,分別得到相容性鄰接集合Mi上、Mi下、Mi左和Mi右;若M包括χ個(gè)紋理塊,則得到的相容性鄰接集合有4x個(gè);2)按紋理相位將M分成多個(gè)子集,從中選擇一個(gè)子集或相位相近的多個(gè)子集組成一個(gè)適用紋理塊集合,以進(jìn)行一次紋理合成的計(jì)算;3)按紋理塊大小對(duì)目標(biāo)紋理分塊,以橫向和縱向均間隔分布的方式在空白塊中填入所述適用紋理塊集合中的任意一塊;4)對(duì)于填充后剩下的空白塊,取每個(gè)空白快四周的紋理塊相應(yīng)的相容性鄰接集合的交集中的任一紋理塊填充,即,填充某一空白塊時(shí),取其左側(cè)紋理塊的Mi右,右側(cè)紋理塊的Mi左,上方紋理塊的Mi下和下方紋理塊的Mi上,然后取這四個(gè)集合的交集中的任何一塊進(jìn)行填充;若沒有交集,就選擇這四個(gè)集合中出現(xiàn)次數(shù)最多的一個(gè)紋理塊來填充;5)以羽化的方式縫合紋理塊之間的重疊部分。c)擴(kuò)大紋理塊的尺寸,這里選擇已合成區(qū)域長(zhǎng)寬的各一半為新的紋理塊大小,如圖3所示,考慮到重疊區(qū)域的影響,新的紋理塊尺寸就變成了(64+2)*(64+2),即66*66;以包含完整的原尺寸紋理塊為標(biāo)準(zhǔn)在已合成區(qū)域中找到66*66的紋理塊,形成適用集合,該集合中的紋理塊均具有相近的相位特征;d)在C)中生成的集合中任選12個(gè)紋理塊,以邊緣重疊的方式與已合成區(qū)域連接或彼此相接填入到目標(biāo)紋理中,可生成的尺寸為258*258;e)對(duì)于d)中選定的紋理塊,加入若干擾動(dòng),對(duì)于坐標(biāo)為(X,y)的紋理塊在(X+/-2,y+/-2)范圍內(nèi)任選一個(gè)紋理塊代替紋理塊(X,y),可在結(jié)果中加入一定的隨機(jī)效果;f)以羽化的方式縫合紋理塊之間的重疊部分;g)計(jì)算生成的塊尺寸,258*258已達(dá)到目標(biāo)紋理256*256的要求,去除邊界,截取256*256的部分作為生成結(jié)果;如果需要生成更大的紋理,可以回到步驟c,開始下一次的復(fù)用。此外,本實(shí)施例分別根據(jù)全局優(yōu)化方法(KwatraV,EssaI,BobickA,etal.Textureoptimizationforexample-basedsynthesis.ACMTrans.Graph,2005,24(3)795-802.)禾口并行可控方法(LefebvreS,HoppeH.Parallelcontrollabletexturesynthesis.ACMTrans.Graph.,2005,24(3):777_786)由相同的樣本紋理得到目標(biāo)紋理,分別如圖5c和5d所示。實(shí)施例2本實(shí)施例通過和實(shí)施例1相同的方法分別由圖6a和圖7a所示樣本紋理合成圖6b和圖7b所示目標(biāo)紋理。同時(shí),根據(jù)全局優(yōu)化方法由圖6a所示樣本紋理合成圖6c所示目標(biāo)紋理,并根據(jù)并行可控方法由圖7a所示樣本紋理合成圖7c所示目標(biāo)紋理。由圖5-7可見,本發(fā)明方法能生成高質(zhì)量的紋理,可以和目前合成質(zhì)量最好的全局優(yōu)化方法相當(dāng),甚至能更好地保持紋理的結(jié)構(gòu)化信息,如圖6中的全局優(yōu)化方法也會(huì)破壞紋理內(nèi)部一些結(jié)構(gòu)化的單元,而本發(fā)明不會(huì)。實(shí)施例3本實(shí)例通過和實(shí)例1相同的方法生成了圖Sb、圖8d、圖9a、圖9b的目標(biāo)紋理,這里的目標(biāo)紋理的尺寸均為512*512。由圖8、9可見,本發(fā)明方法可以較高質(zhì)量生成多種類型的紋理,在可展平面等應(yīng)用中都可得到較好的應(yīng)用。實(shí)施例4本實(shí)施例在一臺(tái)DellOptiplex755微機(jī)上由同一樣本紋理合成多種尺寸的目標(biāo)紋理。該P(yáng)C配有一個(gè)IntelCore2DuoE65502.33GHzCPU,2G內(nèi)存,和一個(gè)NVIDIAGeforce8600GTSGPU。實(shí)驗(yàn)表明,本發(fā)明可實(shí)時(shí)合成2048*2048像素的紋理,并且很適合生成大尺寸的紋理,見表1。根據(jù)HanC等人(HanC,RisserE,RamamoorthiR,GrinspunE.Multiscaletexturesynthesis.ACMTrans.Grap.,2008,27(3),ArticleNo.51)的工作,在配置更高的機(jī)器(GeForce8800GTXGPU)上并行可控紋理方法的處理效率是15.3M像素/秒。根據(jù)該處理效率,我們換算出了其對(duì)于各尺寸紋理的合成時(shí)間,在表1中列出,可以看出,本發(fā)明方法比并行可控方法具有更高的速度,很適合生成大尺寸紋理。雖然間隔布?jí)K的方法(XinChen,WenchengWang.Texturesynthesisbyinterspersingpatchesinachessboardpattern.InVRCAI'09-Proceedingsofthe8thInternationalConferenceonVirtualRealityContinuumanditsApplicationsinIndustry(NewYork,NY,USA,2009),ACM,PP.133-138.)也很便于大紋理的生成,但速度較本發(fā)明方法要慢,且受GPU限制無法生成很大的紋理,而本發(fā)明方法有效地結(jié)合了它的優(yōu)點(diǎn),并在CPU中計(jì)算,可以實(shí)時(shí)地生成2048*2048像素的紋理。表1本實(shí)施例紋理合成計(jì)算效率及比較<table>tableseeoriginaldocumentpage10</column></row><table>權(quán)利要求一種基于復(fù)用的紋理合成方法,包括下列步驟a)分析樣本紋理,確定能反映樣本紋理全局性紋理特征的主體部分尺寸和便于紋理塊約束選取的重疊部分尺寸;b)按照所述主體部分尺寸和重疊部分尺寸,選取尺寸為(a+t/2)*(b+t/2)的紋理塊,以紋理塊間隔分布的合成方法在目標(biāo)紋理上生成一塊紋理;所述主體部分尺寸為a*b,重疊部分的寬度為t;c)從目標(biāo)紋理上已合成紋理區(qū)域中根據(jù)相位相近原則選取一組新的紋理塊,構(gòu)成備選集M,新的紋理塊主體部分尺寸變?yōu)?pa*a)*(pb*b),重疊部分寬度t不變,其中pa,pb均為正整數(shù),且隨著步驟c)復(fù)用次數(shù)增加而單調(diào)變大;d)從備選集M中選取紋理塊,以線性的方式填充到目標(biāo)紋理中,使已合成紋理區(qū)域的尺寸擴(kuò)大;e)縫合填入的紋理塊之間的重疊區(qū)域;f)重復(fù)c)~e)直至已合成區(qū)域的尺寸達(dá)到目標(biāo)紋理的尺寸,則完成合成。2.如權(quán)利要求1所述的紋理合成方法,其特征在于,所述步驟c)中已合成紋理區(qū)域?yàn)榻刂沟缴弦淮尾襟Ee執(zhí)行結(jié)束,所生成的紋理區(qū)域。3.如權(quán)利要求1所述的紋理合成方法,其特征在于,所述步驟d)隨機(jī)從備選集M中選取紋理塊。4.如權(quán)利要求3所述的紋理合成方法,其特征在于,選取紋理塊時(shí)進(jìn)行一定的擾動(dòng),以增加合成紋理的隨機(jī)性,擾動(dòng)的具體操作為假定某個(gè)選定的紋理塊在已合成區(qū)域中的坐標(biāo)為(x,y),則在(X+/-S*pa*a,y+/-S*pb*b)范圍內(nèi)任選一個(gè)紋理塊來替換選定的紋理塊(X,y),擾動(dòng)算子δ的取值范圍在W,0.25]。5.如權(quán)利要求1所述的紋理合成方法,其特征在于,所述步驟a)f)采用了多線程的加速方法在CPU上實(shí)現(xiàn)。全文摘要本發(fā)明公開了一種基于復(fù)用的紋理合成方法,通過分析樣本紋理,以紋理塊間隔分布的合成方法生成一小塊紋理;然后從已合成紋理區(qū)域中根據(jù)相位選取一組新的較大的紋理塊,以線性的方式填充到目標(biāo)紋理中,使已合成紋理區(qū)域的尺寸擴(kuò)大;通過復(fù)用,不斷的從已合成的紋理區(qū)域選取新的更大的紋理塊,擴(kuò)大已合成紋理區(qū)域,直至生成目標(biāo)紋理。使用本發(fā)明的方法,已完成的選塊計(jì)算和縫合計(jì)算都可以被復(fù)用,以減少選塊和縫合的計(jì)算量,節(jié)省合成時(shí)間;而且合成步驟都可以在CPU上實(shí)現(xiàn),有利于避免空間的限制而生成特大的紋理;采用了多線程的加速技術(shù);可以獲得更高的合成速度。文檔編號(hào)G06T11/40GK101807304SQ20101013184公開日2010年8月18日申請(qǐng)日期2010年3月23日優(yōu)先權(quán)日2010年3月23日發(fā)明者王文成,陳昕申請(qǐng)人:中國科學(xué)院軟件研究所