• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      二維平面動畫的多邊形morphing的應(yīng)用研究

      2014-04-29 00:00:00袁媛

      摘 要:morphing,一般翻譯為圖形漸變,是指將一給定的初始圖形在視覺上光滑、連續(xù)、自然的變化到目標(biāo)圖形。本文討論一種基于“類人感知”的二維多邊形漸變中頂點對應(yīng)問題的解決方法,并用java語言對其進(jìn)行實現(xiàn)測試。

      關(guān)鍵詞:morphing;多邊形;java

      中圖分類號:TP391.41

      圖形漸變(morphing),顧名思義就是采用某種方法使初始物體在視覺上連續(xù)、光滑變化到目標(biāo)物體。隨著計算機(jī)技術(shù)的迅速發(fā)展,圖形漸變技術(shù)廣泛應(yīng)用于計算機(jī)圖形學(xué)、工業(yè)產(chǎn)品設(shè)計、計算機(jī)動畫、虛擬現(xiàn)實、影視特技制作等領(lǐng)域。二維物體漸變是物體漸變的重要組成部分,不僅在關(guān)鍵幀動畫、模式識別,而且在曲面重建和三維造型中也有重要意義。

      二維物體漸變的研究包含兩個問題:頂點對應(yīng)問題和頂點插值路徑問題。本文所采用的算法是由劉立剛教授等在2004年研發(fā)出來的算法,在該方法中,對于在源圖形和目標(biāo)圖形中尋找頂點對應(yīng)關(guān)系的這個過程主要著眼于人類對多邊形形狀改變的感知方法,并采用java語言進(jìn)行具體實現(xiàn)。

      1 算法分析

      本文所討論的方法可粗略的分為以下5個步驟:(1)把初始圖形S和目標(biāo)圖形T定義為二維多邊形;(2)對初始圖形S和目標(biāo)圖形T進(jìn)行特征點檢測;(3)解決頂點對應(yīng)問題;(4)解決頂點路徑問題;(5)產(chǎn)生漸變序列并顯示出來。

      1.1 多邊形的定義

      在本文中,二維形狀被定義為一個在二維水平面上的曲線,該曲線不可自交,可以是閉合的,也可以是非閉合的。多邊形是圖形的一個特例,多邊形中用來連接頂點之間的函數(shù)被限制為直線,頂點的集合稱為頂點集,頂點用Pi,表示,連接兩個頂點之間的線段叫做邊。

      1.2 特征點的定義

      在本文中,特征點描述的是在二維平面上的一個點。在特征點匹配的過程中,除了x和y坐標(biāo)以外,還有一些其他的重要屬性。每個特征點都是某一個圖形的成員,每個圖形都能夠用隸屬于它的特征點依次的表示出來,當(dāng)然會損失一些圖像信息。與平均分布采樣點不同,特征點在圖形上的分布并不是均勻的。在人類觀察者對于的圖形的感知中,具有高曲度的尖角點更容易引起注意,因此本文中的“類人感知”,就是獲取高曲度的頂點作為特征點。

      對于普通的二維圖形,特征點需要通過采樣,通過特征點檢測函數(shù)進(jìn)行判斷,來確保特征點采選的準(zhǔn)確性。由于本文討論的對象是二維多邊形,因此,可以默認(rèn)所有的特征點均出自頂點集,無須進(jìn)行采樣只需判斷。

      1.3 特征點的對應(yīng)

      當(dāng)初始圖形和目標(biāo)圖形的特征點都已經(jīng)確定,就要對這些特征點進(jìn)行一一對應(yīng)之后再morphing,為此我們需要一個對特征點進(jìn)行判斷的準(zhǔn)則。為此我們定義如下一些術(shù)語和標(biāo)準(zhǔn):

      1.3.1 領(lǐng)域(Region of Support)

      1.3.2 特征變分

      特征點Pi的特征變分定義為:

      ,其中,λN為垂直特征值,λT為切線特征值,如果Pi是凸特征點,則ξ=1,如果Pi是凹特征點,則ξ=-1。特征變分產(chǎn)生的是ROSh(Pi)中的點相對于 的位置信息。如果Pi附近區(qū)域的圖形相對扁平,臨近點都落在Pi的切線方向。σ(Pi)的值在閉區(qū)間[-1,1]中,如果σ(Pi)的值逼近1,說明點Pi是在一個尖角的端點上;如果σ(Pi)逼近0,則點Pi周圍的圖形比較平緩。

      1.3.3 特征側(cè)面變分

      特征側(cè)面變分定義為:

      其中ROL(Pi)和ROR(Pi)分別是點 的左領(lǐng)域和右領(lǐng)域。對于每一個ROL(Pi)和ROR(Pi),都需要計算其協(xié)方差,對于ROL(Pi)產(chǎn)生特征值λNL和λTL,ROR(Pi)產(chǎn)生特征值λNR和λTR。使用這幾個特征值來定義σ(ROL(Pi))和σ(ROR(Pi)),定義 , 。特征方面變分τ(Pi)用于獲取點Pi的左鄰域以及右鄰域的外觀信息。同特征變分相似,σ(ROL(Pi))和σ(ROR(Pi))的定義域是[0,1](這里不用參數(shù)ξ以防出現(xiàn)負(fù)值)。如果 的值靠近0則說明區(qū)域圖像比較平緩,如果τ(Pi)的值較高就表示ROL或者ROR彎曲程度較大。

      1.3.4 特征規(guī)模

      特征規(guī)模定義為:

      其中ρL(Pi)和ρR(Pi)指的是ROL(Pi)和ROR(Pi)相對于圖形周長的長度。ρ(Pi)實際上是一個指針,指示的是它在整個圖形中的重要性:如果ρ(Pi)產(chǎn)生的值非常小,則說明Pi的鄰域在整個圖形中只是一個比較小的部分,甚至不能給人類觀察者以明顯的印象(如果τ(Pi)和ρ(Pi)都很高的話,Pi的鄰域可能也不明顯)。如果ρ(Pi)獲得了一個很高的值,表明Pi的鄰域是整個圖形的重要部分,將會給觀察者一個很強的印象。

      根據(jù)以上的定義和參數(shù),我們可以用S={Si|i=0,1,…m}來描述初始圖形,用T={Tj|j=0,1,…n}來描述目標(biāo)圖形。當(dāng)S0=Sm,T0=Tn的時候分別表示源圖形和目標(biāo)圖形閉合。每一對特征點Si和Tj的相似度值定義為

      如果初始圖形和目標(biāo)圖形的特征點數(shù)不相等,就不能夠做到初始圖形和目標(biāo)圖形的特征點一一對應(yīng),此時就要舍棄掉不適合產(chǎn)生morphing序列的特征點。而且在尋找良好的morphing序列的過程中,也需要刪除一些不適合進(jìn)行對應(yīng)的特征點。為了判定刪除掉特征點對整個morphing序列的影響,我們引入一個價值函數(shù)。

      通過計算如果Pi的拋棄代價非常小的話,那么說明Pi在整個圖形中的地位不是很重要。

      相似度價值函數(shù)不僅可以用來衡量兩個特征點Si和Tj之間的相似度,而且可以為對應(yīng)初始圖形S和目標(biāo)圖形T整體賦值。在這里對應(yīng)關(guān)系的意思就是從特征點S到特征點T的映射。如果我們把一個映射J看成:{Si}→{Tj},就可以為S和T之間的映射建立一個相似度價值函數(shù):

      ,

      因為初始圖形S中有m個不同的特征點,根據(jù)相似度函數(shù)的特性,我們假設(shè)映射J是對應(yīng)問題的最優(yōu)解決方案,只要使SimCosts(S,T,J)的結(jié)果最小即可。

      2 程序設(shè)計

      本程序采用java語言來實現(xiàn)。

      2.1 類層次結(jié)構(gòu)

      整個程序根據(jù)算法的需要主要封裝成7個包及40余個類,這7個包的名稱分別為shapes,emath,featureDetection,tools,morphing,control和application。

      其中,shape包只是用來處理多邊形;emath包中包含的是計算算法中比較復(fù)雜的數(shù)學(xué)屬性的工具,包括有協(xié)方差,特征向量,特征值和頂點內(nèi)角的二分線等函數(shù);featureDetection用來實現(xiàn)多邊形中的特征點檢測;tools包中的類都是其他類用作工具;controls包中大多數(shù)的類都是用來實現(xiàn)java.awt.event包中定義的ActionListener接口的,它們主要用來處理用戶和應(yīng)用程序之間的交互,同時也可以對其他的類進(jìn)行擴(kuò)展;morph包是用來處理創(chuàng)建漸變序列的;Application則是用來構(gòu)建程序GUI的。

      2.2 檢測特征點

      前文中,我們討論了有關(guān)于特征點的檢測的問題,本文中討論的是二維圖形的特例多邊形,因此可以將算法進(jìn)行簡化。在多邊形中,只有頂點可以作為特征點的候選,因此可以省略采樣這個步驟。同樣的,對于各種不同的三角形可以忽略本過程,因為三角形的構(gòu)造直接就滿足特征點對應(yīng)的需求。

      2.3 頂點對應(yīng)問題

      本文采用動態(tài)規(guī)劃的方法來解決頂點對應(yīng)問題的最優(yōu)化。想要得到最優(yōu)的頂點對應(yīng)組合,合理的做法是事先把拋棄代價和相似度值計算出來并存儲,然后用動態(tài)規(guī)劃的方法進(jìn)行多次調(diào)用,規(guī)劃出最合理的頂點對應(yīng)路徑。下面代碼中的函數(shù)calculateAllDeltaCosts(Polygon,Polygon,int)可以完成這項計算,參數(shù)skips制定了尋找動態(tài)規(guī)劃圖中的某一個結(jié)點的最佳前驅(qū)時,最多可以跳過的特征點的數(shù)目。整型變量dim1和dim2分別表示源圖形和目標(biāo)圖形的特征點數(shù)目。接下來把所有的數(shù)據(jù)都保存在一個四維數(shù)組delta_field中,嵌套的for結(jié)構(gòu)就是把各個變量的值一次的放到對應(yīng)的數(shù)據(jù)域中去。源圖形中的特征點 和目標(biāo)圖形中的特征點 的對應(yīng)關(guān)系存儲在deltaCosts[i][j][][]中。

      3 結(jié)論和展望

      3.1 測試結(jié)果

      3.1.1 特征點檢測對漸變序列的影響

      3.1.2 跳點數(shù)(skip)對漸變序列的影響

      在動態(tài)規(guī)劃圖中允許最大的跳點數(shù)目對漸變序列有著巨大的影響,圖3對此進(jìn)行了展示。所有的漸變序列除了最大跳點數(shù)以外的所有參數(shù)均采用相同的,圖a)中的跳點數(shù)設(shè)為0,這就導(dǎo)致了多邊形各部分的對應(yīng)頂點移動距離都很大,同時由于使用的是直線路徑,非常容易產(chǎn)生自交。圖b)跳步數(shù)選擇為1,成功的避免了產(chǎn)生自交,看上去比圖a)效果要好很多,但在那個的上部依舊還是存在失真。圖c)中,這些沒必要的移動就完全的消失了,圖c)的最大跳步數(shù)設(shè)為2,漸變序列的結(jié)果要比圖a)和b)良好。

      3.2 結(jié)論:特征點檢測這個步驟不僅能優(yōu)化算法,同時也能得到較好的漸變序列。適當(dāng)?shù)脑O(shè)置最大的跳點數(shù)目可以避免漸變序列圖形產(chǎn)生自交,從而產(chǎn)生更優(yōu)的漸變序列。

      參考文獻(xiàn):

      [1]Liu,Ligang,Wang,Guopu,Zhang,Bo,Guo,Baining,Shum,Heung-Yeung.Perceptually Based Approach for Planar Shape Mor-phing,2004:111-120.

      [2]范自柱.一種圖像morphing效果的客觀度量方法[J].計算機(jī)工程與應(yīng)用,2006(31):37-39.

      [3]賴志豪,康寶生.二維物體變形技術(shù)現(xiàn)狀與發(fā)展[J].計算機(jī)技術(shù)與發(fā)展,2007(10):120-121.

      作者簡介:袁媛(1981-),女,遼寧撫順人,講師,碩士,研究方向:計算機(jī)。

      作者單位:撫順職業(yè)技術(shù)學(xué)院,遼寧撫順 113122

      白水县| 灵丘县| 东乌珠穆沁旗| 龙南县| 元朗区| 文安县| 盐池县| 夏邑县| 水富县| 平昌县| 大洼县| 吴堡县| 泰兴市| 西城区| 元谋县| 喜德县| 罗甸县| 志丹县| 太谷县| 丹寨县| 嘉义县| 大余县| 南靖县| 琼中| 普兰店市| 乐都县| 玉山县| 宿迁市| 新晃| 易门县| 堆龙德庆县| 子洲县| 雅安市| 谢通门县| 聂拉木县| 葵青区| 泸溪县| 彭泽县| 游戏| 科技| 宁化县|