專利名稱:一種基于多層嵌套籠體的實(shí)時(shí)交互式圖像變形方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)圖形學(xué)、圖像處理、人機(jī)交互技術(shù)領(lǐng)域,具體涉及到一種基于多層嵌套籠體的實(shí)時(shí)交互式圖像變形方法。
背景技術(shù):
圖像變形技術(shù)在實(shí)踐中具有廣泛的應(yīng)用。電影制作、照片特效、模式識(shí)別等都需要圖像變形技術(shù)。圖像變形技術(shù)有許多方法,其中線性混合方式及其變種由于其較快的變形速度在實(shí)踐中最為有效。對(duì)于典型的線性混合方法來(lái)說(shuō),在物體上的頂點(diǎn)表示為線性仿射變換。用戶只要構(gòu)建一些手柄(handles)并操縱它們進(jìn)行變形。自由變形方法是線性混合方法的一種,但是其規(guī)則結(jié)構(gòu)的限定使得其對(duì)凹形物體的控制非常復(fù)雜。而基于骨架的變形對(duì)于剛性肢體提供自然的控制,對(duì)于靈活的區(qū)域不能進(jìn)行方便的控制?;诨\體的交互式空間變形是目前研究的熱點(diǎn),可對(duì)物體的有效部分進(jìn)行變形, 容易對(duì)ROI (Region Of Interest)區(qū)域進(jìn)行膨脹和收縮變化。籠體是由較少的邊或面構(gòu)成的多邊形或多面體,其形狀近似于所包圍的物體?;\體可以交互式或是預(yù)先自動(dòng)生成,物體的頂點(diǎn)表示為籠體頂點(diǎn)的線性組合(也可能包括籠體的邊或表面法向等)。其線性組合方程的系數(shù)(稱做籠體系數(shù)或籠體坐標(biāo))在變形前進(jìn)行預(yù)計(jì)算,并作為物體頂點(diǎn)的變形不變量,這一過程稱為“綁定”過程。在變形時(shí)期,即用戶操縱籠體頂點(diǎn)變形物體的時(shí)候,組合系數(shù)作為不變量與籠體變化的頂點(diǎn)一起確定變形后物體的位置以得到變形效果。不幸的是,大多數(shù)基于籠體的方法不能很好地處理籠體嵌套的情況,即圖像中區(qū)域被多個(gè)嵌套的多邊形分割(我們稱這些多邊形為多層嵌套籠體),尤其是在交互式變形的情況下。當(dāng)我們交互移動(dòng)籠體的頂點(diǎn)時(shí),我們希望圖像的所有區(qū)域都能平滑變化,只要這種移動(dòng)是在合理的范圍內(nèi)(即不會(huì)過渡的移動(dòng)以導(dǎo)致圖像及籠體邊界出現(xiàn)交疊或是自相交現(xiàn)象)。每個(gè)被隔離的區(qū)域在變化過程中應(yīng)該基本維持在籠體的變化邊界以內(nèi),否則籠體無(wú)法對(duì)變形的區(qū)域進(jìn)行有效地引導(dǎo)。理想狀態(tài)下,籠體應(yīng)該交互式生成以滿足用戶的具體需求。在用來(lái)計(jì)算高質(zhì)量保形狀的變形方面有很多方法,大都是基于一些選取的手柄。 這些手柄可以是點(diǎn),線或骨骼,及多邊形網(wǎng)格。用戶修改手柄的位置和朝向以達(dá)到直觀的變形。這些手柄可分布于目標(biāo)的表面,或是擴(kuò)展到表面的外部。變形主要依賴于變化時(shí)間的優(yōu)化。以上提及的方法都是非線性的,降低了效率,對(duì)于變形高分辨率的圖像和物體會(huì)特別慢。使用加權(quán)混合的手柄變換,其變形時(shí)間會(huì)大大縮短。khaefer等人使用線性組的最小二乘(Moving Least Squares或MLQ來(lái)變形圖像(參考Scott Schaefer, Travis McPhai1, and Joe Warren. Image deformation using moving least squares. In SIGGRAPH'06 :ACM SIGGRAPH 2006 Papers,pages 533-540,New York,NY,USA,2006. ACM), 其變形時(shí)間與采樣網(wǎng)格點(diǎn)的數(shù)量成線性關(guān)系。Weng等人基于骨架對(duì)圖像在GPU上進(jìn)行實(shí)時(shí)變形(參考Yanlin WengiXiaohan ShiiHujun Bao,and Jun Zhang. Sketching MLS imagedeformations on the GPU. Computer Graphics Forum, 27 (7) : 1789-1796,2008),但是骨架的選取對(duì)于用戶來(lái)說(shuō)比較煩瑣。基于籠體的方法也可以視為一種手柄變形技術(shù),其中的手柄即是籠體的頂點(diǎn)。這種方法本質(zhì)是一種線性混合表皮變形方法,其中手柄(籠體頂點(diǎn))的變化只限于平移?;诨\體變形方法的核心是如何選取權(quán)重以實(shí)現(xiàn)變形的平滑,已經(jīng)有很多可行方法被提出, 如均值坐標(biāo)(Mean Value Coordinates 或 MVC)(參考Michael S. Floater. Mean value coordinates. Computer Aided Geometric Design, 20(1) : 19—27,March 2003),調(diào)禾口坐標(biāo)(Harmonic Coordinates 或 HC)(參考Pushkar Joshi, Mark Meyer, Tony DeRose, Brian Green, and Tom Sanocki. Harmonic coordinates for character articulation. In SIGGRAPH,07 :ACM SIGGRAPH 2007 papers, page 71,New York, NY, USA, 2007. ACM), 格林坐標(biāo)(Green Coordinates 或 GC)(參考Yaron Lipman, David Levin, and Daniel Cohen-Or. Green coordinates. In SIGGRAPH'08 :ACM SIGGRAPH 2008 papers,pages 1-10, New York, NY, USA, 2008. ACM), IiLRM^U (complex barycentric coordinates CBC) R 其變禾中等(參考0firWeber,Mirela Ben-Chen, and Craig Gotsman. Complex barycentric coordinates with applications to planar shape deformation. Computer Graphics Forum(Proceedings of Eurographics),28 (2),2009.及 Mirela Ben-Chen, Ofir Weber, and Craig Gotsman. Variational harmonic maps for space deformation. ACM Trans. Graph. ,28(3) :1-11,2009). Jacobson等人設(shè)計(jì)了線性混合權(quán)值可以產(chǎn)生平滑直觀的變形,使用了多種手柄如點(diǎn)、骨骼和籠體(參考A. Jacobson,I. Baran, J. Popovic, and 0. Sorkine. Bounded biharmonic weights for real-time deformation. In SIGGRAPH'11 ACM SIGGRAPH 2011 Papers 2011)。但是,以上這些方法都沒有展示嵌套籠體交互式變形, 因?yàn)槠涮幚肀容^困難。一旦得到了籠體系數(shù),在變形過程中其值將保持不變??梢岳肎PU的通用計(jì)算來(lái)實(shí)現(xiàn)實(shí)時(shí)的圖像變形。Meng等人設(shè)計(jì)了一個(gè)在GPU上基于籠體的圖像變形框架(參考:ffeiliang Meng, Bin Sheng, Shandong Wang, Hanqiu Sun, and Enhua ffu. Interactive image deformation using cage coordinates on gpu. In Virtual Reality Continuum and its Applications in Industry, pages 119-1 ,2009),但是其方法受限于籠體的頂點(diǎn)個(gè)數(shù),因?yàn)樾枰朔椒ㄊ褂煤芏鄰埮c變形圖像大小相同的圖的四個(gè)通道即RGBA來(lái)記錄籠體系數(shù),這些圖需要被送到GPU的顯卡中用于實(shí)時(shí)變形,稱為紋理圖,通常會(huì)超出顯卡所能容許的數(shù)量限制(目前常見的紋理圖的限制個(gè)數(shù)是8或16)。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題本發(fā)明所要解決的技術(shù)問題是克服多層嵌套籠體對(duì)圖像進(jìn)行交互式變形時(shí)速度緩慢,效率低下的缺陷。(二)技術(shù)方案為解決上述技術(shù)問題,本發(fā)明提出了一種基于多層嵌套籠體的實(shí)時(shí)交互式圖像變形方法,其包括以下步驟A、根據(jù)圖像生成網(wǎng)格,所述網(wǎng)格由網(wǎng)格頂點(diǎn)和由網(wǎng)格頂點(diǎn)圍成的網(wǎng)格面組成;B、對(duì)需要變形的圖像區(qū)域生成多層嵌套籠體,所述多層嵌套籠體由多個(gè)多邊形構(gòu)成,且所述多個(gè)多邊形不交叉;C、計(jì)算籠體坐標(biāo),所述籠體坐標(biāo)是指每個(gè)網(wǎng)格頂點(diǎn)的位置相對(duì)于多層嵌套籠體的系數(shù),所述生成的網(wǎng)格頂點(diǎn)的位置為多層籠體頂點(diǎn)位置的線性組合;D、將所述多層嵌套籠體的頂點(diǎn)作為手柄,通過交互式操作該手柄來(lái)實(shí)現(xiàn)變形;E、將籠體坐標(biāo)進(jìn)行打包,并將打包后的籠體坐標(biāo)作為紋理輸入圖像處理單元以用于使用線性方程更新網(wǎng)格頂點(diǎn)位置實(shí)現(xiàn)實(shí)時(shí)的圖像變形。(三)有益效果本發(fā)明使用多層嵌套籠體,并且使相鄰層次的籠體的方向相反,從而可以在圖像變形時(shí)更有效地保持圖像局部信息,從而易于對(duì)圖像進(jìn)行控制。另外,本發(fā)明對(duì)籠體坐標(biāo)進(jìn)行打包后作為紋理輸入圖像處理單元,提高了處理效率,保證了交互變形的實(shí)時(shí)性,使得該方法易于實(shí)用化。
圖1是圖像轉(zhuǎn)化為網(wǎng)格的示意圖。圖2是利用圖像分割法生成籠體的示意圖。圖3是多層嵌套籠體的示例圖,其中圖3 (a)、圖3 (b)示出了正確的多層嵌套籠體, 圖3(c)示出了不正確的多層嵌套籠體。圖4是多層嵌套籠體中不同層次的多邊形的方向示意圖。圖5是使用多層嵌套籠體的變形效果圖。圖6是圖5中的籠體坐標(biāo)打包后的紋理圖。圖7是校正比薩斜塔圖像的效果圖。圖8是蝴蝶圖像的變形前后對(duì)比圖,其中圖8(1)和圖8(2)分別為原始圖像和變形結(jié)果圖像,只使用一個(gè)籠體進(jìn)行變形;而圖8C3)和圖8(4)使用了多層嵌套籠體進(jìn)行變形。圖9顯示了對(duì)心形反射體中的影像的變形。其中圖9(1)和圖9(2)為使用單一籠體進(jìn)行選取和變形時(shí)的圖像,圖9 C3)和圖9(4)是多層籠體選取和變形時(shí)的圖像。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。本發(fā)明采用多層嵌套籠體對(duì)圖像進(jìn)行變形,并且使相鄰層次的籠體的方向相反, 從而可以在圖像變形時(shí)更有效地保持圖像局部信息,從而易于對(duì)圖像進(jìn)行控制。本發(fā)明通過交互式方式對(duì)圖像進(jìn)行實(shí)時(shí)變形,由于對(duì)籠體坐標(biāo)進(jìn)行打包后作為紋理輸入圖像處理單元,提高了處理效率,保證了交互變形的實(shí)時(shí)性,使得該方法易于實(shí)用化。以下具體描述本發(fā)明的對(duì)圖像進(jìn)行變形的方法的實(shí)施方式A、根據(jù)圖像生成網(wǎng)格,所述網(wǎng)格由網(wǎng)格頂點(diǎn)和由網(wǎng)格頂點(diǎn)圍成的網(wǎng)格面組成。圖 1是網(wǎng)格的示意圖,如圖所示,圖像的每個(gè)像素用一個(gè)網(wǎng)格頂點(diǎn)來(lái)表示,四個(gè)“田”字型相鄰的像素方塊使用兩個(gè)網(wǎng)格面來(lái)表示,其中每個(gè)網(wǎng)格面均為一個(gè)三角形。圖1顯示的三角形網(wǎng)格面中,三角形的長(zhǎng)邊為“田”字型相鄰的四個(gè)網(wǎng)格頂點(diǎn)組成的矩形的主對(duì)角線。但是,本發(fā)明并不局限于此,也可以使相鄰的四個(gè)網(wǎng)格頂點(diǎn)組成的矩形的副對(duì)角線作為三角形網(wǎng)格面的長(zhǎng)邊。B、對(duì)需要變形的圖像區(qū)域生成多層嵌套籠體。生成單個(gè)籠體的過程為用多邊形來(lái)包圍想要變形的區(qū)域。多邊形的生成方式,可以是使用鼠標(biāo)在圖像上以點(diǎn)擊方式生成,這種方式可以直觀,在較少籠體頂點(diǎn)條件下比較可行。生成多邊形的另一種方式是對(duì)圖像進(jìn)行分割,首先根據(jù)目標(biāo)區(qū)域的顏色特征,設(shè)置一個(gè)閾值,將其轉(zhuǎn)化為二值圖(即可有黑白兩色),然后對(duì)圖像進(jìn)行搜取以提取輪廓線的方式,如圖2所示。圖2中生成的樹葉輪廓線有57個(gè)頂點(diǎn),可直接用做籠體,在設(shè)置好合適的參數(shù)以后,輪廓線的計(jì)算時(shí)間基本上可達(dá)到實(shí)時(shí)。多層嵌套籠體由多個(gè)多邊形構(gòu)成,這些多邊形之間可以有嵌套關(guān)系,但不能交叉。 圖3中顯示了多層嵌套籠體的示例,其中圖3(a)和圖3(b)為合理的多層嵌套籠體,將圖像劃分成多個(gè)連通區(qū)域(即區(qū)域內(nèi)任意兩點(diǎn)間都能用一條區(qū)域內(nèi)曲線相連的區(qū)域),每個(gè)連通區(qū)域的邊界的頂點(diǎn)即是多邊形的頂點(diǎn),圖3(c)不是多層嵌套籠體,因?yàn)閮蓚€(gè)多邊形之間存在交叉,其中公共部分的那個(gè)區(qū)域的邊界頂點(diǎn)在多邊形的邊上,而不是多邊形的頂點(diǎn)。在本發(fā)明的實(shí)施例中,多層嵌套籠體的生成過程為首先生成最外層籠體,并使最外層籠體為逆時(shí)針,接著生成次外層籠體,并使次外層籠體為順時(shí)針,再生成第三層籠體, 并使第三層籠體為逆時(shí)針。并依此類推,使相鄰層次的籠體的方向相反,如圖4所示。在圖像變形過程中,在籠體內(nèi)的內(nèi)容只受包圍它的籠體的影響。但是應(yīng)該注意以下事實(shí)不應(yīng)被忽略所有的圖像像素都有特定的含義,特別是對(duì)于具有復(fù)雜畫面的圖像。所以對(duì)圖像的任何區(qū)域進(jìn)行變形時(shí)應(yīng)該對(duì)所有的像素都有影響,只不過,由于一些像素離ROI 的距離較遠(yuǎn),所以其變化較小,從而不易被察覺到。另一方面,對(duì)于某一些區(qū)域,我們希望在圖像變形時(shí),該區(qū)域的局部特性保持基本不變,盡管其位置離ROI的距離很近。在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,可實(shí)時(shí)交互式地生成多層嵌套籠體,用戶無(wú)需再提供其它的額外信息。所謂交互式是指用戶和計(jì)算機(jī)之間存在交互作用的信息處理方式, 用戶通過終端設(shè)備輸入信息和操作命令,系統(tǒng)接到后立即處理,并通過終端設(shè)備(通常為顯示器)顯示處理結(jié)果。用戶可以根據(jù)處理結(jié)果進(jìn)一步輸入信息和操作命令。通??梢酝ㄟ^鼠標(biāo)和鍵盤輸入信息與計(jì)算機(jī)實(shí)現(xiàn)交互式。C、計(jì)算籠體坐標(biāo)。所述籠體坐標(biāo)是指每個(gè)網(wǎng)格頂點(diǎn)的位置相對(duì)于多層嵌套籠體的系數(shù),這些系數(shù)在以后的變形過程中保持不變。所述生成的網(wǎng)格頂點(diǎn)的位置為多層籠體頂點(diǎn)位置的線性組合。即設(shè)某一個(gè)頂點(diǎn)的位置為Xtl,籠體的頂點(diǎn)位置坐標(biāo)為P0, P1,…,Pn,則可有X0 = λ οΡο+λ 必 +…+ λ nPn,其中,λ0, A1,…,λ 是實(shí)數(shù)或復(fù)數(shù),稱之為籠體系數(shù),計(jì)算可采用多種方法。我們也使用“籠體坐標(biāo)(cage coordinates或CC),,這一術(shù)語(yǔ)來(lái)表示籠體系數(shù),對(duì)于有η個(gè)頂點(diǎn)的多層嵌套籠體,對(duì)于每一個(gè)網(wǎng)格點(diǎn),都對(duì)應(yīng)η個(gè)籠體系數(shù)或者說(shuō)η個(gè)籠體坐標(biāo)。一旦籠體給定,傳統(tǒng)的方法通常會(huì)將像素分成三類以進(jìn)行籠體坐標(biāo)的計(jì)算在籠體內(nèi)、在籠體上、以及在籠體外。通常,可使用多邊形掃描轉(zhuǎn)換來(lái)完成這個(gè)過程。而對(duì)于多層嵌套籠體,此計(jì)算過程則更為復(fù)雜。
但是,如果籠體坐標(biāo)在籠體內(nèi)外無(wú)限可導(dǎo),則無(wú)需識(shí)別像素與籠體的相對(duì)位置??紤]位于多層嵌套籠體所在平面上的任意一點(diǎn),不同的多層嵌套籠體頂點(diǎn)會(huì)有不同的影響, 這主要取決于多邊形的位置與形狀。只要其影響是平滑的,所有影響的迭加也是平滑的。此外,為保證變形后的整個(gè)圖像為矩形,我們使用圖像包圍盒來(lái)進(jìn)行限定,其方向?yàn)轫槙r(shí)針,視為多層嵌套籠體的一部分(圖3中的黑線)。在交互式變形時(shí)此包圍盒保持不變。本發(fā)明的計(jì)算流程如下在生成多層嵌套籠體之后(不妨設(shè)有m個(gè)多邊形,共η個(gè)頂點(diǎn)構(gòu)成),首先,對(duì)于圖像的每個(gè)像素記錄一個(gè)長(zhǎng)度為η的數(shù)組,用來(lái)記錄求解的系數(shù)的最終值。然后,對(duì)多層嵌套籠體的每個(gè)多邊形,針對(duì)每個(gè)像素,計(jì)算像素相對(duì)于此多邊形的籠體系數(shù),并將結(jié)果存放到像素所對(duì)應(yīng)的數(shù)組中去,每個(gè)籠體系數(shù)對(duì)應(yīng)數(shù)組中的一個(gè)位置, 對(duì)m個(gè)多邊形計(jì)算后恰好填滿長(zhǎng)度為η的數(shù)組。最后針對(duì)每個(gè)像素所對(duì)應(yīng)的數(shù)組,將數(shù)組中的每個(gè)元素進(jìn)行歸一化,即使得數(shù)組的元素之和為1。歸一化的方式為,將數(shù)組中的元素求和,然后每個(gè)元素除以這個(gè)和值即可。像素χ相對(duì)于籠體的籠體系數(shù)計(jì)算依賴于不同權(quán)重的選取。權(quán)值應(yīng)該滿足在多層籠體頂點(diǎn)處0階連續(xù)且在其它地方一階連續(xù)。并非所有的生成籠體坐標(biāo)的方法滿足這個(gè)條件,均值坐標(biāo)和調(diào)和坐標(biāo)滿足要求,可參考(Kai Hormann and Michael S. Floater. Mean value coordinates for arbitrary planar polygons. ACM Trans. Graph. , 25 (4) 1424-1441,2006.禾口 Tony Derose and Mark Meyer. Harmonic coordinates. Technical report, Pixar Animation Studios, 2006)來(lái)獲得各自坐標(biāo)的具體計(jì)算過程。獲得所有的籠體系數(shù)后,即可用來(lái)進(jìn)行變形。D、將所述多層嵌套籠體的頂點(diǎn)作為手柄,通過交互式操作該手柄來(lái)實(shí)現(xiàn)變形。操作手柄的方式有多種一種方式是直接手工拖動(dòng)多層嵌套籠體的頂點(diǎn)以改變籠體頂點(diǎn)的位置,由于網(wǎng)格頂點(diǎn)表示為籠體頂點(diǎn)位置的線性組合,且對(duì)應(yīng)的籠體系數(shù)在計(jì)算完畢后保持不變,因而籠體頂點(diǎn)位置的變化引起網(wǎng)格位置的變化,從而導(dǎo)致網(wǎng)格發(fā)生變形,進(jìn)而引起網(wǎng)格表面的顏色變化,實(shí)現(xiàn)了圖像的變形過程。另外的方式是指定多層嵌套籠體頂點(diǎn)的運(yùn)動(dòng)速度和方向參數(shù),其值的設(shè)定可自由指定以達(dá)到各種變形效果,也可根據(jù)變形多邊形頂點(diǎn)的法向指定,變化過程中,可同時(shí)控制幾個(gè)頂點(diǎn)的變化。在變形過程中,網(wǎng)格頂點(diǎn)的顏色保持為對(duì)應(yīng)像素的顏色,只有位置進(jìn)行變化。網(wǎng)格的每個(gè)面的顏色由網(wǎng)格的所述三角形面的三個(gè)網(wǎng)格頂點(diǎn)的顏色線性插值得到,這一插值過程由使用OpenGL庫(kù)繪制命令實(shí)現(xiàn),即以平滑方式繪制三角形面片,程序命令在指定頂點(diǎn)顏色之后將自動(dòng)插值繪出每個(gè)面的顏色。并且,圖像的每個(gè)像素對(duì)應(yīng)的籠體系數(shù)在整個(gè)變形過程中保持不變,僅由初始的多層嵌套籠體確定。E、將籠體坐標(biāo)進(jìn)行打包,并將打包后的籠體坐標(biāo)作為紋理輸入圖像處理單元 (GPU)以用于使用線性方程更新網(wǎng)格頂點(diǎn)位置實(shí)現(xiàn)實(shí)時(shí)的圖像變形。由于圖像的每個(gè)像素對(duì)應(yīng)的籠體系數(shù)在整個(gè)變形過程中保持不變,僅由初始的多層嵌套籠體確定,因而,為加速變形,我們可將每個(gè)像素對(duì)應(yīng)的籠體系數(shù)作為紋理輸入圖像處理單元(GPU)。所謂紋理,實(shí)際是指一個(gè)二維數(shù)組,每個(gè)數(shù)組中的值表示為顏色值。通常使用RGBA(紅,綠,藍(lán),透明度) 四個(gè)分量(或通道)表示顏色。當(dāng)前,浮點(diǎn)紋理已經(jīng)被廣泛支持,無(wú)需對(duì)于小于0的那些值作特殊處理。我們可使用與圖像大小相同的紋理的一個(gè)通道來(lái)記錄一個(gè)籠體坐標(biāo),這樣一張紋理圖可記錄4個(gè)籠體系數(shù)。如果籠體頂點(diǎn)個(gè)數(shù)超過64,則至少需要16張以上的紋理圖,這可能超出了大多數(shù)顯卡的硬件限制。為此,我們將所有的紋理圖進(jìn)行打包以消除顯卡硬件限制。為使紋理盡可能地成正方形以節(jié)省顯存,定義紋理的大小如下對(duì)于圖像I,大小為mXn(m> η)的分辨率,如果多層籠體頂點(diǎn)個(gè)數(shù)為c,則紋理寬度w為
權(quán)利要求
1.一種基于多層嵌套籠體的實(shí)時(shí)交互式圖像變形方法,其特征在于包括以下步驟A、根據(jù)圖像生成網(wǎng)格,所述網(wǎng)格由網(wǎng)格頂點(diǎn)和由網(wǎng)格頂點(diǎn)圍成的網(wǎng)格面組成;B、對(duì)需要變形的圖像區(qū)域生成多層嵌套籠體,所述多層嵌套籠體由多個(gè)多邊形構(gòu)成, 且所述多個(gè)多邊形不交叉;C、計(jì)算籠體坐標(biāo),所述籠體坐標(biāo)是指每個(gè)網(wǎng)格頂點(diǎn)的位置相對(duì)于多層嵌套籠體的系數(shù),所述生成的網(wǎng)格頂點(diǎn)的位置為多層籠體頂點(diǎn)位置的線性組合;D、將所述多層嵌套籠體的頂點(diǎn)作為手柄,通過交互式操作該手柄來(lái)實(shí)現(xiàn)變形;E、將籠體坐標(biāo)進(jìn)行打包,并將打包后的籠體坐標(biāo)作為紋理輸入圖像處理單元,以用于使用線性方程更新網(wǎng)格頂點(diǎn)位置實(shí)現(xiàn)實(shí)時(shí)的圖像變形。
2.根據(jù)權(quán)利要求1所述的圖像變形方法,其中在步驟A中,圖像的每個(gè)像素用一個(gè)網(wǎng)格頂點(diǎn)來(lái)表示,四個(gè)“田”字型相鄰的像素方塊使用兩個(gè)網(wǎng)格面來(lái)表示,其中每個(gè)網(wǎng)格面均為一個(gè)三角形。
3.根據(jù)權(quán)利要求2所述的圖像變形方法,其中所述三角形的長(zhǎng)邊為“田”字型相鄰的四個(gè)網(wǎng)格頂點(diǎn)組成的矩形的主對(duì)角線。
4.根據(jù)權(quán)利要求2所述的圖像變形方法,其中所述三角形的長(zhǎng)邊為“田”字型相鄰的四個(gè)網(wǎng)格頂點(diǎn)組成的矩形的副對(duì)角線。
5.根據(jù)權(quán)利要求1所述的圖像變形方法,其中在步驟B中使相鄰層次的籠體的方向相反;
6.根據(jù)權(quán)利要求1所述的圖像變形方法,其中在步驟B中,實(shí)時(shí)交互式地生成多層嵌套籠體。
7.根據(jù)權(quán)利要求6所述的圖像變形方法,其中實(shí)時(shí)交互式地生成多層嵌套籠體的步驟為使用鼠標(biāo)在圖像上以點(diǎn)擊方式生成。
8.根據(jù)權(quán)利要求6所述的圖像變形方法,其中實(shí)時(shí)交互式地生成多層嵌套籠體的步驟為圖像分割法,其具體包括如下步驟首先根據(jù)目標(biāo)區(qū)域的顏色特征,設(shè)置一個(gè)閾值,將其轉(zhuǎn)化為二值圖,然后對(duì)圖像進(jìn)行搜取以提取輪廓線。
9.根據(jù)權(quán)利要求1所述的圖像變形方法,其中在步驟C中,當(dāng)多邊形的個(gè)數(shù)為m、頂點(diǎn)的總個(gè)數(shù)為η時(shí),首先,對(duì)于圖像的每個(gè)像素記錄一個(gè)長(zhǎng)度為η的數(shù)組,用來(lái)記錄求解的系數(shù)的最終值;然后,對(duì)多層嵌套籠體的每個(gè)多邊形,針對(duì)每個(gè)像素,計(jì)算像素相對(duì)于此多邊形的籠體系數(shù),并將結(jié)果存放到像素所對(duì)應(yīng)的數(shù)組中去,每個(gè)籠體系數(shù)對(duì)應(yīng)數(shù)組中的一個(gè)位置,對(duì)m 個(gè)多邊形計(jì)算后恰好填滿長(zhǎng)度為η的數(shù)組;最后,針對(duì)每個(gè)像素所對(duì)應(yīng)的數(shù)組,將數(shù)組中的每個(gè)元素進(jìn)行歸一化,即使得數(shù)組的元素之和為1。
10.根據(jù)權(quán)利要求1所述的圖像變形方法,其中在步驟D中,網(wǎng)格頂點(diǎn)的顏色保持為對(duì)應(yīng)像素的顏色,只有位置進(jìn)行變化,網(wǎng)格的每個(gè)面的顏色由網(wǎng)格的所述三角形面的三個(gè)網(wǎng)格頂點(diǎn)的顏色線性插值得到。
11.根據(jù)權(quán)利要求1所述的圖像變形方法,其中在步驟D中,圖像的每個(gè)像素對(duì)應(yīng)的籠體系數(shù)在整個(gè)變形過程中保持不變,僅由初始的多層嵌套籠體確定。
12.根據(jù)權(quán)利要求1所述的圖像變形方法,其中在步驟E中,定義紋理的大小如下對(duì)于大小為mXn的分辨率的圖像,當(dāng)多層籠體頂點(diǎn)個(gè)數(shù)為c時(shí),使紋理寬度w為
13.根據(jù)權(quán)利要求12所述的圖像變形方法,其中在紋理圖像上對(duì)應(yīng)原始圖像一個(gè)像素的尋址采用如下規(guī)則對(duì)于在圖像大小為mXn中的一個(gè)像素,當(dāng)其對(duì)應(yīng)坐標(biāo)為(X,y)時(shí),其在紋理圖像中的系數(shù)為坐標(biāo)(x+kXm,y+lXn)所對(duì)應(yīng)的RGBA通道值,其中,k,1為整數(shù),k = 0,1,…,1 = 0,1,…,且 x+kXm <= w, y+lXn <= h0
全文摘要
本發(fā)明公開了一種基于多層嵌套籠體的實(shí)時(shí)交互式圖像變形方法。該方法包括如下步驟A、根據(jù)圖像生成網(wǎng)格,所述網(wǎng)格由網(wǎng)格頂點(diǎn)和由網(wǎng)格頂點(diǎn)圍成的網(wǎng)格面組成;B、對(duì)需要變形的圖像區(qū)域生成多層嵌套籠體,所述多層嵌套籠體由多個(gè)多邊形構(gòu)成,且所述多個(gè)多邊形不交叉;C、計(jì)算籠體坐標(biāo),所述籠體坐標(biāo)是指每個(gè)網(wǎng)格頂點(diǎn)的位置相對(duì)于多層嵌套籠體的系數(shù),所述生成的網(wǎng)格頂點(diǎn)的位置為多層籠體頂點(diǎn)位置的線性組合;D、將所述多層嵌套籠體的頂點(diǎn)作為手柄,通過交互式操作該手柄來(lái)實(shí)現(xiàn)變形;E、將籠體坐標(biāo)進(jìn)行打包,并將打包的籠體坐標(biāo)作為紋理輸入圖像處理單元以用于使用線性方程更新網(wǎng)格頂點(diǎn)位置實(shí)現(xiàn)實(shí)時(shí)的圖像變形。本發(fā)明實(shí)現(xiàn)了使用多層嵌套籠體實(shí)時(shí)交互式地對(duì)圖像進(jìn)行變形,并可通過多次重復(fù)以對(duì)圖像實(shí)現(xiàn)各種可能的變形效果。
文檔編號(hào)G06T3/00GK102496140SQ201110401999
公開日2012年6月13日 申請(qǐng)日期2011年12月6日 優(yōu)先權(quán)日2011年12月6日
發(fā)明者孟維亮, 張曉鵬, 董未名 申請(qǐng)人:中國(guó)科學(xué)院自動(dòng)化研究所