一種改進的按行紋理合成加速方法
【專利摘要】一種改進的按行紋理合成加速方法,本發(fā)明先按塊合成一行紋理,再按行合成整個紋理;將按塊合成中的L形重疊區(qū)改進為r形重疊區(qū),減少參與誤差計算的冗余像素點個數(shù);采用并行計算方式搜尋滿足誤差條件的最優(yōu)合成紋理塊;將水平最佳縫合線的搜索范圍從塊擴大到行,采用行最佳縫合線進行行紋理的縫合。本發(fā)明在其存在較大計算冗余的基礎上提出了改進,使用r型重疊區(qū)代替了L型重疊區(qū)的計算并使用了按整行進行縫合的策略來進一步加快了紋理合成的速度。
【專利說明】一種改進的按行紋理合成加速方法
【技術領域】
[0001]本發(fā)明涉及一種紋理合成技術,尤其是按行紋理合成加速方法的改進,屬于圖形圖像處理【技術領域】。
【背景技術】
[0002]基于樣圖的紋理合成技術(Texture Synthesis from Samples,TSFS)是繼紋理映射、過程紋理合成方法之后發(fā)展起來的一種新的紋理合成技術。其原理為:基于給定的小區(qū)域紋理樣本,按照物體表面的幾何形狀,拼合生成任意大小的紋理圖像。
[0003]TSFS技術有兩大類:基于點的紋理合成和基于塊的紋理合成?;邳c的紋理合成方法,采用Markov Random Field(MRF)模型進行紋理合成,MRF模型認為紋理具有局部統(tǒng)計特征,即紋理中的任一部分都可以由其周圍部分(即鄰域)完全決定,對于大多數(shù)紋理,MRF模型能夠很好地描述紋理的特征,提升了樣圖紋理合成的質(zhì)量,但是由于每合成一個像素都要搜索一遍樣本圖,運算量非常大,處理的速度也很慢?;趬K的紋理合成方法,其每次合成一個方形的區(qū)域,通過尋找最佳紋理塊和按最佳縫合線拼接最佳紋理塊來產(chǎn)生新的紋理,大大提高了合成速度,同時還避免了點合成過程中的模糊效果,對紋理結構保持的較好。但該方法存在的問題也非常明顯,它會出現(xiàn)紋理塊的重復效應,有時邊界不匹配,從而導致了合成質(zhì)量較低的問題。雖然該合成方法的合成速度相比點合成有了一定的提升,但在實際的運用中還是速度較慢無法達到實時合成的效果。
[0004]在基于塊的紋理合成中,具有代表性的為Image quilting方法。它是一種基于塊拼接的紋理合成方法。該方法的主要步驟如下:
[0005](1)在輸入的紋理樣本圖中任取一塊紋理塊BI,放在目標紋理圖中,然后在紋理樣本圖中查找新的一塊B2,查找方法為:①按照掃描線順序,在紋理樣本圖中移動紋理塊的左上角的位置,即從紋理樣本圖的(0,0)坐標開始,按照掃描線順序把每一個點作為紋理塊的左上角頂點,遍歷紋理樣本圖。②對每個紋理塊,按照重疊區(qū)寬度overlapWidth找到其與在目標圖中已經(jīng)合成塊的重疊區(qū),在已合成的塊中的重疊區(qū)記為B1v,在當前找到的紋理塊中的重疊區(qū)記為B2ov,計算重疊區(qū)域誤差Error,用重疊區(qū)域內(nèi)對應像素的顏色差值平方和Sum-of-Squared Differences (SSD)來度量該誤差,計算方法為:
[0006]Error = Σ [ (%: - )2 十 ^ - c; )2 + iK, -eZn
I, Jeo verlap
[0007]式中,Κζ,Οζ和T是Βι。內(nèi)對應像素的RGB顏色值,和bZ是B。內(nèi)
對應像素的RGB顏色值。③找出重疊區(qū)域誤差在誤差容忍度Tolerance范圍內(nèi)的紋理塊的集合,然后隨機在該集合中挑選一個紋理塊作為新找到的最優(yōu)紋理塊B2。
[0008](2)將民放在目標紋理圖像中,與已合成的紋理塊進行拼接,即尋找其與已合成紋理塊之間的最佳縫合線,共有垂直、水平和L型三種拼接的種類。最佳縫合線用Dijkstra的最短路徑方法得到。
[0009](3)把找到的最佳縫合線當成新的紋理邊界,將B2放在目標紋理圖中,按最佳縫合線進行拼合。
[0010](4)重復以上步驟直至目標紋理圖全部被合成紋理覆蓋。
[0011]從上述對Image quilting方法描述中可以看出,由于其存在對紋理樣本圖的遍歷,選擇最優(yōu)紋理塊是非常耗時的過程,重疊區(qū)域誤差的計算量非常大,而且還存在著有計算冗余部分。
【發(fā)明內(nèi)容】
[0012]本發(fā)明方法的目的正是為了克服上述現(xiàn)有技術存在的缺陷和不足之處,在其存在較大計算冗余的基礎上提出了改進,使用r型重疊區(qū)代替了 L型重疊區(qū)的計算并使用了按整行進行縫合的策略來進一步加快了紋理合成的速度。
[0013]本方法是一種改進的按行紋理合成加速方法,本發(fā)明改進的目的還在于,在保證紋理合成效果的同時較大幅度的提升合成速度。而且,在對某些紋理圖進行合成時,提高了合成速度的同時還能有更好的合成效果,降低了使用的復雜度。
[0014]本發(fā)明的目的是通過如下技術方案來實現(xiàn)的。
[0015]為提高紋理合成速度,本方法對現(xiàn)有的按塊合成方法Image quilting方法進行了改進,提出改進的按行紋理合成加速方法,即先按塊合成一行紋理,再按行合成整個紋理。將按塊合成中的L形重疊區(qū)改進為r形重疊區(qū),減少參與誤差計算的冗余像素點個數(shù);采用并行計算方式搜尋滿足誤差條件的最優(yōu)合成紋理塊;將水平最佳縫合線的搜索范圍從塊擴大到行,采用行最佳縫合線進行行紋理的縫合,保證和提高了紋理合成的效果。所提方法在不降低合成效果的前提下,提升了紋理合成速度,降低了方法的復雜性;
[0016]本發(fā)明按行合成加速方法的實施步驟為:
[0017](I)按照Image quilting方法中垂直重疊區(qū)紋理塊拼接的方式合成目標紋理圖的第一行;
[0018](2)從合成第二行紋理開始,尋找最佳紋理塊時,除第一塊的尋找與Imagequilting方法相同,其余塊的尋找均按照r形重疊區(qū)域進行誤差計算;
[0019](3)在一行的范圍內(nèi)尋找水平最佳縫合線,并按該縫合線將兩行紋理進行紋理拼接;按行合成方法在進行紋理塊縫合時只有兩種拼接類型,按行合成的垂直最佳紋理縫合與按行合成的水平最佳紋理縫合;
[0020](4)重復(2)、(3)步驟直至目標紋理圖全部被合成紋理覆蓋。
[0021]本發(fā)明對于r型重疊區(qū)的構建思想為:對于Image quilting方法中的L形重疊區(qū),在其上方紋理塊和左方紋理塊合成時已經(jīng)各計算過一次誤差,在本次合成時又被計算一次,造成了冗余計算,因此我們提出了 r型重疊區(qū),它能夠有效避免L形重疊區(qū)中出現(xiàn)的重復計算的問題。r形重疊區(qū)域中的垂直重疊區(qū)和水平重疊區(qū)不再有重合部分,其中左上角部分的像素只在前面選擇時被用來計算重疊區(qū)誤差,在本次最佳紋理塊選擇時,不再參與重疊區(qū)誤差計算,消除了計算冗余,這在一定程度上提高了合成速度。
[0022]本發(fā)明水平最佳縫合線的搜尋的基本思想為:按行合成的方法是先合成一行后,再和前一行紋理進行紋理拼接。水平最佳縫合線的搜索范圍從【背景技術】中提到的ImageQuilting方法中的一個合成塊擴展到一行合成塊,在和前一行已合成好的行紋理中在重疊區(qū)進行最佳縫合線的尋找,再按最佳縫合線進行兩行的拼接,擴大了水平方向最佳縫合線的搜索范圍,這種較大范圍內(nèi)的搜索有利于提高紋理合成的質(zhì)量,使縫合線在一行上具有全局最優(yōu)的特性,以保證合成效果不下降甚至還有提高。
[0023]本發(fā)明候選合成紋理塊并行合成的基本思想為:在選擇每一個最佳紋理塊的過程中,每個候選紋理塊和已合成好的紋理進行重疊區(qū)誤差計算的過程是彼此獨立,互不影響,因而可以同時對這些不同的塊進行計算,所以可將其分解為并行遍歷的過程。在進行方法實現(xiàn)時,設計并行計算的方法,即在同一時刻可以同時對兩個、四個甚至多個合成紋理塊進行重疊區(qū)誤差計算,縮短尋找最佳紋理塊的時間。在并行計算的過程中,借助多核CPU來實現(xiàn)并行計算,以此提高紋理合成速度。
[0024]發(fā)明的效果
[0025]本發(fā)明中提出的改進的按行紋理合成加速方法降低了其具體實現(xiàn)的復雜度;合成效果與現(xiàn)有的按塊合成方法相比,沒有下降,反而因行最佳縫合線的引入,還有所提升。設紋理樣本圖、合成紋理塊和目標紋理圖都是正方形的,重疊區(qū)域的寬度與合成紋
理塊寬或高的比為l:n,即重疊區(qū)寬度占合成紋理塊的1/n,可以得到:rcuion =
2η-1
從該式可以看出,1^^011與重疊區(qū)占合成紋理塊的比例有密切關系,ratiojf隨重疊區(qū)占合成紋理塊比例的增大而提高。當n=3時,可以計算出按行合成的速度提升率為:
ratio, = ~~ = - = 20% 當 n=6 時,則 ratio^ = ~~ =丄=9.09%。
【專利附圖】
【附圖說明】
[0026]圖1為Image Quilting方法的示意圖;
[0027]圖2為按塊合成方法中的重疊區(qū)域的介紹示意圖;
[0028]圖3為本發(fā)明的新重疊區(qū)域r型重疊區(qū)域示意圖;
[0029]圖4為按塊合成方法中的三種拼接類型示意圖;
[0030]圖5為在本發(fā)明中使用的兩種拼接方式示意圖;
[0031]圖6為Image Quilting方法和改進的按行紋理合成加速方法合成效果對比圖1部分;
[0032]圖7為Image Quilting方法和改進的按行紋理合成加速方法合成效果對比圖1I部分;
[0033]圖8為Image QuiIting方法和改進的按行紋理合成加速方法合成效果對比圖1II部分;
[0034]圖9為Image Quilting方法和改進的按行紋理合成加速方法合成效果對比圖1V部分。
【具體實施方式】
[0035]為提高紋理合成速度,本方法對現(xiàn)有的按塊合成方法Image quilting方法進行了改進,提出改進的按行紋理合成加速方法,即先按塊合成一行紋理,再按行合成整個紋理。將按塊合成中的L形重疊區(qū)改進為r形重疊區(qū),減少參與誤差計算的冗余像素點個數(shù);采用并行計算方式搜尋滿足誤差條件的最優(yōu)合成紋理塊;將水平最佳縫合線的搜索范圍從塊擴大到行,采用行最佳縫合線進行行紋理的縫合,保證和提高了紋理合成的效果。所提方法在不降低合成效果的前提下,提升了紋理合成速度,降低了方法的復雜性;
[0036]本發(fā)明按行合成加速方法的實施步驟為:
[0037](I)按照Image quilting方法中垂直重疊區(qū)紋理塊拼接的方式合成目標紋理圖的第一行;
[0038](2)從合成第二行紋理開始,尋找最佳紋理塊時,除第一塊的尋找與Imagequilting方法相同,其余塊的尋找均按照r形重疊區(qū)域進行誤差計算;
[0039](3)在一行的范圍內(nèi)尋找水平最佳縫合線,并按該縫合線將兩行紋理進行紋理拼接;按行合成方法在進行紋理塊縫合時只有兩種拼接類型,按行合成的垂直最佳紋理縫合與按行合成的水平最佳紋理縫合;
[0040](4)重復(2)、(3)步驟直至目標紋理圖全部被合成紋理覆蓋。
[0041]見圖1,(a)圖為原有塊合成方法,其中B1、B2為合成的區(qū)域,BI的區(qū)域為從左邊到深黑色虛線矩形區(qū)域,B2的區(qū)域為從右邊到圖中深黑色直線矩形區(qū)域,深黑色直線到深黑色虛線之間的矩形區(qū)域為縫合時候的拼接區(qū)域;(b)圖為Image Quilting方法使用到的最小誤差分割路徑技術,圖中兩條虛線之間的矩形區(qū)域為縫合部分,曲線為最佳縫合線。
[0042]見圖2,圖2中的左側(cè)部分為已經(jīng)合成好的塊,右側(cè)灰色部分為新找到的塊。其中,(a)圖為垂直型的紋理重疊區(qū),其中右側(cè)部分中水平方向標定的blockWidth為新找到的塊的寬度,垂直方向標定的blockHeight為新找到的塊的高度;(b)圖為水平型的紋理重疊區(qū);(c)圖為L型紋理重疊區(qū),其中右側(cè)深灰色矩形部分為在合成過程中被重復多次計算的區(qū)域,其水平標定overlapWidth為該區(qū)域的寬度。
[0043]見圖3,r形重疊區(qū)為圖中深黑色矩形框區(qū)域所示,其出現(xiàn)在非第一行和非第一列的最優(yōu)匹配塊選擇中?;疑珔^(qū)域為新合成的用于拼接的塊。r型重疊區(qū)的提出,使圖2中的矩形重疊區(qū)域的計算次數(shù)在本方法中每一行(非第一行)的合成中減少了一次,在計算減少的這一次中只計算了垂直和水平的部分區(qū)域而不再重復計算其重疊的矩形區(qū)域。
[0044]見圖4,圖中深黑色矩形框內(nèi)的部分為其縫合的區(qū)域,灰色區(qū)域為新找到的用于拼接的塊。其中,(a)圖為垂直型最佳紋理縫合線;(b)圖為水平型最佳紋理縫合線;(C)圖為L型最佳紋理縫合線。
[0045]見圖5,圖中深黑色矩形框內(nèi)的黑線為最佳縫合線,灰色區(qū)域為新合成的用于拼接的塊。其中,(a)圖為按行合成的垂直型最佳紋理縫合線,其與原有方法的合成原理和效果相同;(b)圖為按行合成的水平型最佳紋理縫合線,該縫合方式為本方法中新提出,其不再對每一塊分別進行水平縫合而是將每一行作為整體進行整行的縫合,從而在提升了縫合連貫性效果的同時還能加快縫合速度。
[0046]見圖6?圖9,其中n=3,bN=6 (η為重疊區(qū)占合成紋理塊的比例,bN為紋理塊的個數(shù))。圖中實驗所使用的平臺其硬件規(guī)格為:CPU =Intel(R) Core(TM) 2Duo P8700 ;CPU主頻:2.53GHz ;內(nèi)存:2GM。圖中從左到右依次為紋理樣本及合成參數(shù)、Image Quilting合成效果圖、改進的按行加速合成效果圖、Image Quilting方法的合成時間(IQ TS)、改進的按行合成加速方法合成時間(Line TS)、合成速度提升率(Ratio)、按行并行合成時間、按行合成與按行并行合成的提升率。從圖6?圖9中可得出,使用了按行合成加速方法后相比ImageQuilting方法的平均合成速度提升率為23.38%,使用了按行并行合成后相比沒有使用并 行合成時的平均速度提升率為45.55%。
【權利要求】
1.一種改進的按行紋理合成加速方法,其特征在于,先按塊合成一行紋理,再按行合成整個紋理;將按塊合成中的L形重疊區(qū)改進為r形重疊區(qū),減少參與誤差計算的冗余像素點個數(shù);采用并行計算方式搜尋滿足誤差條件的最優(yōu)合成紋理塊;將水平最佳縫合線的搜索范圍從塊擴大到行,采用行最佳縫合線進行行紋理的縫合; 其步驟為: (1)按照Imagequilting方法中垂直重疊區(qū)紋理塊拼接的方式合成目標紋理圖的第一行; (2)從合成第二行紋理開始,尋找最佳紋理塊時,除第一塊的尋找與Imagequilting方法相同,其余塊的尋找均按照r形重疊區(qū)域進行誤差計算; (3)在一行的范圍內(nèi)尋找水平最佳縫合線,并按該縫合線將兩行紋理進行紋理拼接;按行合成方法在進行紋理塊縫合時只有兩種拼接類型,按行合成的垂直最佳紋理縫合與按行合成的水平最佳紋理縫合; (4)重復(2)、(3)步驟直至目標紋理圖全部被合成紋理覆蓋。
【文檔編號】G06T11/00GK103473798SQ201310422033
【公開日】2013年12月25日 申請日期:2013年9月16日 優(yōu)先權日:2013年9月16日
【發(fā)明者】普園媛, 蘇迤, 魏小敏, 徐丹, 王朝暉 申請人:云南大學