一種基于多分辨率的焦點(diǎn)上下文可視化方法
【專利摘要】本發(fā)明涉及一種基于多分辨率的焦點(diǎn)上下文(Focus+Context,F(xiàn)+C)可視化方法,屬于計(jì)算機(jī)圖形學(xué)、可視化領(lǐng)域。本發(fā)明在最小形變的Focus+Context可視化的基礎(chǔ)上,對(duì)二維模型進(jìn)行變形。首先將模型劃分為分辨率較小的均勻網(wǎng)格,判斷哪些網(wǎng)格需要變形;然后將模型根據(jù)模型頂點(diǎn)的密集程度細(xì)分為分辨率不一致的規(guī)則網(wǎng)格;加上位置約束以及邊界約束;采用Taucs函數(shù)庫對(duì)線性系統(tǒng)進(jìn)行迭代求解;最后對(duì)路網(wǎng)數(shù)據(jù)進(jìn)行重建。與已有技術(shù)相比較,本發(fā)明方法能夠在對(duì)模型進(jìn)行Focus+Context可視化的時(shí)候,達(dá)到快速并且形變量較小的效果。
【專利說明】-種基于多分辨率的焦點(diǎn)上下文可視化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于多分辨率的焦點(diǎn)上下文(Focus+Context,F(xiàn)+C)可視化方法, 屬于計(jì)算機(jī)圖形學(xué)、可視化領(lǐng)域。
【背景技術(shù)】
[0002] 在屏幕上呈現(xiàn)一個(gè)復(fù)雜的模型的時(shí)候,分辨率始終是有限的,操作人員不可能看 到所有需要關(guān)注區(qū)域的細(xì)節(jié)。如果直接對(duì)焦點(diǎn)區(qū)域進(jìn)行放大,則會(huì)使得模型超出屏幕邊界, 又看不到一個(gè)全局的信息。因此就引出焦點(diǎn)上下文(Focus+Context)技術(shù),即在有限屏幕 內(nèi),不僅能顯示用戶關(guān)注區(qū)域的詳細(xì)信息,又能保證用戶對(duì)模型整體的一個(gè)宏觀感知。
[0003] 隨著Focus+Context技術(shù)的發(fā)展,基本可分為2種方法:基于映射函數(shù)的變形算法 和基于目標(biāo)函數(shù)優(yōu)化的變形算法?;谟成浜瘮?shù)的變形算法又有兩種經(jīng)典的方法一魚眼 變形方法和高斯徑向放大方法;基于目標(biāo)函數(shù)優(yōu)化的變形算法也有兩個(gè)經(jīng)典的方法一二 次規(guī)劃變形方法和形變量最小化方法。
[0004] 1986年Furnas借簽魚眼視圖(Fish-eye view)效果,提出了具有重要影響力的魚 眼算法,其思想是對(duì)位于焦點(diǎn)區(qū)域內(nèi)的點(diǎn)按用戶指定的放大因子放大,同時(shí)利用預(yù)先定義 的映射函數(shù)對(duì)焦點(diǎn)區(qū)域外的點(diǎn)的位置進(jìn)行映射。
[0005] 現(xiàn)有的映射函數(shù)可以分為兩類:(1)全局映射函數(shù),即對(duì)位于焦點(diǎn)區(qū)域外的所有 點(diǎn)進(jìn)行映射。Harrie等人使用的映射函數(shù),網(wǎng)格的放大比例隨著與焦點(diǎn)區(qū)域中心距離的 增大而減??;(2)局部映射函數(shù),即對(duì)臨近焦點(diǎn)區(qū)域的固定范圍內(nèi)的點(diǎn)進(jìn)行映射,其它區(qū)域 點(diǎn)的位置保持不變。Yamamoto等使用的映射函數(shù),位于變形區(qū)域內(nèi)點(diǎn)的位置通過貝塞爾 (Bezier)插值函數(shù)得到,使其遠(yuǎn)離焦點(diǎn)區(qū)域。既不屬于焦點(diǎn)區(qū)域也不屬于變形區(qū)域的部分 是上下文區(qū)域,位于上下文區(qū)域內(nèi)的點(diǎn)保持其位置不變。
[0006] 早起的基于映射函數(shù)的變形算法,大家發(fā)現(xiàn)一個(gè)很嚴(yán)重的問題,就是模型的變形 太過嚴(yán)重。對(duì)用戶的識(shí)別造成很大問題,而且沒有一個(gè)評(píng)判標(biāo)準(zhǔn)來對(duì)變形的結(jié)果進(jìn)行定量 評(píng)估,所以研究者提出了基于目標(biāo)函數(shù)的變形算法來實(shí)現(xiàn)Focus+Context技術(shù)。
[0007] 解決優(yōu)化問題的常用技術(shù)是數(shù)學(xué)規(guī)劃(Mathematical Programming)。首先將 實(shí)際問題用一些變量進(jìn)行抽象描述,然后將優(yōu)化的目標(biāo)定義為這些變量的函數(shù),即目標(biāo)函 數(shù),將優(yōu)化過程需要滿足的約束條件定義為這些變量的等式或不等式。研究人員已經(jīng)對(duì)數(shù) 學(xué)規(guī)劃問題進(jìn)行了大量的研究,并對(duì)一些特定類型的問題提供的高效的解決方法,例如, LPs (Linear Pragrams)問題、CQP (Convex Quadratic Programs)問題。所以研究基于目標(biāo) 函數(shù)優(yōu)化的變形算法,關(guān)鍵在于如何定義變量,設(shè)計(jì)合理的目標(biāo)函數(shù)和約束條件,從而達(dá)到 既快又好的變形效果。
[0008] 2008年,Yu-Shuen Wang等人提出利用形變最小思想對(duì)三維模型實(shí)現(xiàn) Focus+Context可視化。文中先對(duì)模型設(shè)計(jì)一個(gè)正方體閉包,對(duì)該閉包劃分均勻網(wǎng)格。將模 型點(diǎn)的變形轉(zhuǎn)化為對(duì)網(wǎng)格的變形。主要分為以下幾個(gè)步驟:
[0009] (1)基于三維模型的均勻網(wǎng)格劃分;
[0010] (2)劃分 Princple 網(wǎng)格和 Trivial 網(wǎng)格;
[0011] (3)基于目標(biāo)函數(shù)的定義;
[0012] (4)添加邊界約束條件;
[0013] (5)對(duì)目標(biāo)函數(shù)進(jìn)行迭代求解;
[0014] (6)路網(wǎng)數(shù)據(jù)重建;
[0015] 這種方法的缺點(diǎn)是計(jì)算量大。
[0016] 2011年,Jan-Henrik Haunet對(duì)路網(wǎng)進(jìn)行Focus+Context可視化。他是對(duì)路網(wǎng)的 變形,所以認(rèn)為路的變形越小則效果越好。該算法將路網(wǎng)看做一個(gè)圖,每一段道路就是圖中 的一條邊,采用CQP(Convex Quadratic Program)方法,將目標(biāo)函數(shù)定義為盡量減小圖中邊 的變形,并通過添加約束條件來避免邊與邊之間的交叉,從而對(duì)路網(wǎng)結(jié)構(gòu)圖中邊的布局進(jìn) 行優(yōu)化。雖然效果很好,但是時(shí)間特別慢,特別是當(dāng)模型頂點(diǎn)更多的時(shí)候,時(shí)間呈幾何倍數(shù) 增長(zhǎng)。該方法的缺點(diǎn)是形變量大、計(jì)算時(shí)間長(zhǎng)。形變量是指在對(duì)模型進(jìn)行變形之后,變形后 的模型與原始模型差異性的一個(gè)度量。
【發(fā)明內(nèi)容】
[0017] 本發(fā)明的目的是為了克服上述已有技術(shù)的缺陷,解決對(duì)模型Focus+Context 可視化的時(shí)候出現(xiàn)的模型形變大和計(jì)算時(shí)間長(zhǎng)等問題,提出一種基于多分辨率網(wǎng)格的 Focus+Context可視化技術(shù)。
[0018] 本發(fā)明的目的是通過下述技術(shù)方案實(shí)現(xiàn)的。
[0019] 本發(fā)明的一種基于多分辨率網(wǎng)格的Focus+Context可視化方法,其具體步驟如 下:
[0020] 步驟一、獲取目標(biāo)對(duì)象的原始點(diǎn)云數(shù)據(jù)。
[0021] 所述原始點(diǎn)云數(shù)據(jù)為二維點(diǎn)云數(shù)據(jù),包含點(diǎn)的橫坐標(biāo)值(用符號(hào)X表示)和縱坐 標(biāo)值(用符號(hào)y表示)。
[0022] 步驟二、生成均勻網(wǎng)格。
[0023] 在步驟一得到的目標(biāo)對(duì)象的原始點(diǎn)云數(shù)據(jù)的基礎(chǔ)上,生成均勻網(wǎng)格。具體操作步 驟為:
[0024] 步驟2. 1 :通過公式(1)對(duì)目標(biāo)對(duì)象的原始點(diǎn)云數(shù)據(jù)進(jìn)行單位化處理,得到單位化 點(diǎn)云數(shù)據(jù)。
[0025]
【權(quán)利要求】
1. 一種基于多分辨率網(wǎng)格的Focus+Context可視化方法,其特征在于:其具體步驟如 下: 步驟一、獲取目標(biāo)對(duì)象的原始點(diǎn)云數(shù)據(jù); 所述原始點(diǎn)云數(shù)據(jù)為二維點(diǎn)云數(shù)據(jù),包含點(diǎn)的橫坐標(biāo)值X和縱坐標(biāo)值y ; 步驟二、生成均勻網(wǎng)格; 在步驟一得到的目標(biāo)對(duì)象的原始點(diǎn)云數(shù)據(jù)的基礎(chǔ)上,生成均勻網(wǎng)格;具體操作步驟 為: 步驟2. 1 :通過公式(1)對(duì)目標(biāo)對(duì)象的原始點(diǎn)云數(shù)據(jù)進(jìn)行單位化處理,得到單位化點(diǎn)云 數(shù)據(jù);
(1) 其中,V是原始點(diǎn)云數(shù)據(jù)中每個(gè)點(diǎn)單位化處理后的橫坐標(biāo)值;是原始點(diǎn)云數(shù)據(jù)中 點(diǎn)的橫坐標(biāo)最大值;xmin是原始點(diǎn)云數(shù)據(jù)中點(diǎn)的橫坐標(biāo)最小值;y'是原始點(diǎn)云數(shù)據(jù)中每個(gè) 點(diǎn)單位化處理后的縱坐標(biāo)值;y max是原始點(diǎn)云數(shù)據(jù)中點(diǎn)的縱坐標(biāo)最大值;ymin是原始點(diǎn)云數(shù) 據(jù)中點(diǎn)的縱坐標(biāo)最小值; 步驟2. 2 :將單位化點(diǎn)云數(shù)據(jù)所在的二維坐標(biāo)系的單位空間劃分為ηΧη個(gè)均勻網(wǎng)格, 其中,n = 2m,m為正整數(shù),m值由人為確定;同時(shí)得到均勻網(wǎng)格的網(wǎng)格頂點(diǎn)坐標(biāo),并對(duì)均勻 網(wǎng)格按順序進(jìn)行編號(hào);每個(gè)網(wǎng)格的四個(gè)頂點(diǎn)坐標(biāo)分別用(x vl,yvl)、(xv2,yv2)、(xv3,y v3)和 (χν4, yv4)表示;所述單位空間是由橫坐標(biāo)值為〇和1,縱坐標(biāo)值為〇和1的四條直線圍成的 一個(gè)矩形; 經(jīng)過步驟二的操作,得到均勻網(wǎng)格; 步驟三、對(duì)單位化點(diǎn)云數(shù)據(jù)進(jìn)行預(yù)處理操作; 在步驟二操作的基礎(chǔ)上,通過公式(2)對(duì)單位化點(diǎn)云數(shù)據(jù)進(jìn)行預(yù)處理操作,得到單位 化點(diǎn)云數(shù)據(jù)中每個(gè)點(diǎn)與它所在網(wǎng)格之間的映射關(guān)系;
(2) 其中,Wi為當(dāng)前單位化點(diǎn)云數(shù)據(jù)點(diǎn)(X',y')與點(diǎn)(X',y')所在網(wǎng)格的網(wǎng)格頂點(diǎn) (xvi,yvi)的相關(guān)系數(shù);i為正整數(shù),i e [1,4]; 通過步驟三的操作,可以得到單位化點(diǎn)云數(shù)據(jù)點(diǎn)(X',y')與點(diǎn)(X',y')所在網(wǎng) 格的網(wǎng)格頂點(diǎn)(xvi,yvi)的相關(guān)系數(shù)wi; 步驟四、得到多分辨率網(wǎng)格; 在步驟三操作的基礎(chǔ)上,得到多分辨率網(wǎng)格;具體步驟為: 步驟4. 1 :確定點(diǎn)數(shù)閾值σ,
,sum為原始點(diǎn)云數(shù)據(jù)中點(diǎn)的數(shù)量; 所述確定點(diǎn)數(shù)閾值σ的方法為:統(tǒng)計(jì)步驟三得到每個(gè)均勻網(wǎng)格中單位化點(diǎn)云數(shù)據(jù)點(diǎn) 的數(shù)量,并從中找到最大值,將該最大值作為點(diǎn)數(shù)閾值σ ; 步驟4. 2 :將二維坐標(biāo)系的單位空間劃分為2X2的網(wǎng)格,得到細(xì)分網(wǎng)格的邊長(zhǎng),用符號(hào) 1表示; 步驟4. 3 :依次判斷每個(gè)細(xì)分網(wǎng)格中單位化點(diǎn)云數(shù)據(jù)點(diǎn)的數(shù)量S,如果S > σ,并且1 > 1/η,則繼續(xù)將該細(xì)分網(wǎng)格劃分為2X2的網(wǎng)格;重復(fù)該步驟的操作,直到每個(gè)細(xì)分網(wǎng)格都不 能被細(xì)分為止; 通過上述步驟的操作,得到多分辨率網(wǎng)格; 步驟五、將多分辨率網(wǎng)格中的網(wǎng)格劃分為有效網(wǎng)格和冗余網(wǎng)格; 在步驟四操作的基礎(chǔ)上,將多分辨率網(wǎng)格中的全部網(wǎng)格劃分為有效網(wǎng)格和冗余網(wǎng)格; 具體操作方法為:對(duì)步驟四得到的多分辨率網(wǎng)格進(jìn)行遍歷,如果當(dāng)前網(wǎng)格里沒有原始點(diǎn)云 數(shù)據(jù)中的任何點(diǎn),則將該網(wǎng)格標(biāo)記為冗余網(wǎng)格;否則,將該網(wǎng)格標(biāo)記為有效網(wǎng)格; 步驟六、定義目標(biāo)函數(shù); 在步驟五操作的基礎(chǔ)上,定義目標(biāo)函數(shù);具體步驟為: 用符號(hào)ck表示步驟四得到的多分辨率網(wǎng)格中的任意一網(wǎng)格,k表示步驟四得到的多分 辨率網(wǎng)格中每一網(wǎng)格的索引,K k < K,K表示多分辨率網(wǎng)格中的網(wǎng)格數(shù)量;用符號(hào)V k 表示多分辨率網(wǎng)格中網(wǎng)格ck變形后的網(wǎng)格;c' k = skck,其中,sk是一個(gè)2X2的等比例縮 放矩陣,表示網(wǎng)格c k的變形系數(shù);
(3) 其中,sk,x和sk,y分別表示網(wǎng)格c k頂點(diǎn)的X、y坐標(biāo)縮放系數(shù);sk,x = sk,y ; 網(wǎng)格變形的目標(biāo)函數(shù)定義為:
其中,C表示步驟四得到的多分辨率網(wǎng)格中的所有網(wǎng)格;S表示所有網(wǎng)格的等比例縮放 矩陣;C'表示多分辨率網(wǎng)格中所有網(wǎng)格變形后的網(wǎng)格; 由于多分辨率網(wǎng)格被分為有效網(wǎng)格和冗余網(wǎng)格,因此只需要計(jì)算有效網(wǎng)格即可,目標(biāo) 函數(shù)簡(jiǎn)化為: |C/ p-SpCp||2 = 0 (5) 其中,Cp表示步驟五得到的多分辨率網(wǎng)格中的所有有效網(wǎng)格;sp表示所有有效網(wǎng)格的 等比例縮放矩陣;c' p表示多分辨率網(wǎng)格中所有有效網(wǎng)格變形后的網(wǎng)格; 用符號(hào)I表示多分辨率網(wǎng)格中所有有效網(wǎng)格中的任意一個(gè)網(wǎng)格cp的第e條邊,
和vp2分別表示第e條邊的終止頂點(diǎn)和起始頂點(diǎn);則多分 辨率網(wǎng)格中所有有效網(wǎng)格中的任意一個(gè)網(wǎng)格可以表示為邊的集合
將網(wǎng)格cp用頂點(diǎn)表示為cp = qpvp,其中,vp表示網(wǎng)格cp的頂點(diǎn)矩陣;q p為邊的表示矩 陣,qp矩陣中的元素取值如下: (6) 其中,qf表示qP矩陣中第u行,第V列的元素的值;u e {〇, 1,2, 3},V為正整數(shù); 用Qp表示多分辨率網(wǎng)格中所有有效網(wǎng)格的邊的表示矩陣,則多分辨率網(wǎng)格中所有有效 網(wǎng)格集合(;可表示為Cp = QPVP,這樣公式(5)表示的目標(biāo)函數(shù)可以用公式(7)表示; |QPV/ p-SpQpVp| I2 = 0 (7) 其中,vP表示多分辨率網(wǎng)格中的所有有效網(wǎng)格cp的頂點(diǎn)矩陣;ν' P表示多分辨率網(wǎng)格 中的所有有效網(wǎng)格cp變形后的頂點(diǎn)矩陣; 在進(jìn)行變形的過程中,發(fā)現(xiàn)僅使用一個(gè)頂點(diǎn)的絕對(duì)坐標(biāo)對(duì)整個(gè)變形后的網(wǎng)格空間進(jìn)行 定位,會(huì)引起模型的"抖動(dòng)",所以要為每個(gè)網(wǎng)格頂點(diǎn)添加位置約束;所述模型的"抖動(dòng)"指網(wǎng) 格空間相對(duì)于原始位置的整體偏移; ω||?ν/ p-Vp||2 = 0 (8) 其中,ω為位置約束的強(qiáng)度,ω為人為設(shè)定值,ω e [〇,1] ;1是與V' P階數(shù)相同的 單位矩陣; 整合目標(biāo)函數(shù)和位置約束條件之后,可以得到改進(jìn)的目標(biāo)函數(shù),如公式(9)所示; QPV/ p-SpQpVp| |2+ω | |IV/P_VP| |2 = Ο (9) 添加網(wǎng)格邊界約束條件即讓每個(gè)網(wǎng)格頂點(diǎn)都保持在邊界里,得到公式(10),公式(10) 即目標(biāo)函數(shù);
(10) 其中,νχ和vy分別表示多分辨率網(wǎng)格中的所有有效網(wǎng)格中任意一網(wǎng)格的頂點(diǎn)的X坐 標(biāo)和y坐標(biāo)的值;Xi和yi分別表示多分辨率網(wǎng)格的所有頂點(diǎn)中的X坐標(biāo)的最小值和y坐標(biāo) 的最小值;xh和y h分別表示多分辨率網(wǎng)格的所有頂點(diǎn)中的X坐標(biāo)的最大值和y坐標(biāo)的最大 值; 步驟七、對(duì)目標(biāo)函數(shù)求解; 在步驟六操作的基礎(chǔ)上,對(duì)公式(10)求解;具體操作步驟為: 步驟7. 0 :將公式(10)表示為公式(11); AV/ p = b(VP) (11) 其中,
將公式(11)等號(hào)兩邊同時(shí)乘以Ατ,轉(zhuǎn)換為求解線性系統(tǒng): (ATA)V/ p = ATb(VP) (12) 步驟7. 1 :若為第一次迭代,則VP取初始值,同時(shí)根據(jù)VP的初始值,計(jì)算每個(gè)有效網(wǎng)格 的初始面積Mp;否則設(shè)置VP = V' P,V' p為步驟7.4中得到的結(jié)果,并根據(jù)當(dāng)前%值,計(jì) 算每個(gè)變形后的有效網(wǎng)格的面積Μ' p; 步驟7. 2 :計(jì)算步驟四得到的多分辨率網(wǎng)格中的所有有效網(wǎng)格cp的的縮放系數(shù)fp ;如 果該有效網(wǎng)格在焦點(diǎn)區(qū)域內(nèi),則該有效網(wǎng)格的縮放系數(shù)是人為設(shè)定的放大倍數(shù)λ,λ > 1, 即fp= λ ;如果該有效網(wǎng)格不在焦點(diǎn)區(qū)域內(nèi),則根據(jù)公式(13)計(jì)算該有效網(wǎng)格的縮放系 數(shù);所述焦點(diǎn)區(qū)域由用戶人為指定的區(qū)域,因此非焦點(diǎn)區(qū)域即視圖中焦點(diǎn)區(qū)域以外的區(qū)域; 根據(jù)計(jì)算出來的多分辨率網(wǎng)格中的所有有效網(wǎng)格c p的的縮放系數(shù),得出縮放系數(shù)矩陣SP ;
(13) 其中,Γ為2X2單位矩陣; 步驟7. 3 :根據(jù)步驟7. 2計(jì)算出來的縮放系數(shù)矩陣SP,計(jì)算b (VP),
步驟7. 4:將7. 3計(jì)算出來的b(VP),帶入到公式(12),計(jì)算V' p;如果V' 5已經(jīng)收斂 或者迭代次數(shù)達(dá)到預(yù)先設(shè)定值,則停止迭代;否則,重復(fù)步驟7. 1至步驟7. 4的操作; 步驟八、重建模型; 在步驟七操作的基礎(chǔ)上,使用步驟七得到的V' ρ重建模型,得到變形后的二維模型。
【文檔編號(hào)】G06T3/40GK104123696SQ201410319246
【公開日】2014年10月29日 申請(qǐng)日期:2014年7月7日 優(yōu)先權(quán)日:2014年7月7日
【發(fā)明者】李仲君, 李鳳霞, 查燕平, 張王成, 劉茜 申請(qǐng)人:北京理工大學(xué)