謝祚海,趙 穎,樊曉平,2,周 筠
(1.中南大學(xué)信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙 410075;2.湖南財(cái)政經(jīng)濟(jì)學(xué)院網(wǎng)絡(luò)化系統(tǒng)研究所,湖南 長(zhǎng)沙 410205)
近些年來(lái),體數(shù)據(jù)可視化技術(shù)在醫(yī)療診斷、地質(zhì)學(xué)和逆向工程等領(lǐng)域的應(yīng)用日益增多,新的理論成果和實(shí)踐操作不斷產(chǎn)生,體數(shù)據(jù)可視化技術(shù)的實(shí)用性和針對(duì)性逐漸增強(qiáng)[1]。移動(dòng)立方體(Marching Cubes)算法由Lorensen和Cline[2]提出,它通過(guò)對(duì)體數(shù)據(jù)中的體素抽取逼近等值面的三角面片,能夠較好較快的對(duì)二維圖像進(jìn)行三維重建,因此在許多領(lǐng)域得到了廣泛應(yīng)用。當(dāng)體數(shù)據(jù)的采樣密度比較大、體素大小相對(duì)顯示尺度很小時(shí),這種簡(jiǎn)單構(gòu)造三角片的方式足以滿足實(shí)際使用中的精度要求,但是在處理采樣密度較低的體數(shù)據(jù)時(shí),重建的效果很難滿足所需精確度的要求。目前國(guó)內(nèi)外學(xué)者針對(duì)這一問(wèn)題已有較多研究工作。Weber等[3]采用了對(duì)體數(shù)據(jù)中的網(wǎng)格進(jìn)行多次迭代劃分,從而使得數(shù)據(jù)場(chǎng)采樣密度變大的方法;Ying 等[4]對(duì)體數(shù)據(jù)采用八叉樹(shù)細(xì)分法,但是該方法會(huì)在部分區(qū)域產(chǎn)生空隙;Paiva等[5]提出的自適應(yīng)網(wǎng)格法則是使用代數(shù)函數(shù)對(duì)抽取出的三角網(wǎng)格進(jìn)行調(diào)整。這些研究主要是通過(guò)增加網(wǎng)格模型的頂點(diǎn),也就是采樣點(diǎn)的數(shù)量來(lái)提高三維數(shù)據(jù)場(chǎng)采樣密度,從而確保三維重建所要求的精確度,但是采樣點(diǎn)數(shù)量的增多也就意味著算法在三維重建時(shí)需要更多的內(nèi)存更大的計(jì)算量。為了能夠在不增加采樣點(diǎn)數(shù)量的前提下,提高三維重建的精確度,可以采取預(yù)先對(duì)體數(shù)據(jù)變形的方式,而體數(shù)據(jù)的變形主要通過(guò)對(duì)體素頂點(diǎn)進(jìn)行位移操作來(lái)實(shí)現(xiàn)。在此基礎(chǔ)上,Congote等[6]提出了以迭代位移的方式對(duì)體數(shù)據(jù)進(jìn)行變形,提高繪制圖像精確度的方法;但是該方法在算法穩(wěn)健性以及保證重建過(guò)程的實(shí)時(shí)性和交互性方面存在著缺陷。本文提出了一種基于體數(shù)據(jù)變形的自適應(yīng)移動(dòng)立方體算法,在處理采樣稀疏的體數(shù)據(jù)時(shí),首先分割體數(shù)據(jù),去除與算法無(wú)關(guān)的體素;然后以自適應(yīng)地改變?nèi)S數(shù)據(jù)場(chǎng)中感興趣區(qū)域內(nèi)體素頂點(diǎn)位置的方法對(duì)體數(shù)據(jù)進(jìn)行變形,使得體素內(nèi)包含的三角面片更加逼近等值面。在體素頂點(diǎn)位移的過(guò)程中,為了確保了拓?fù)浣Y(jié)構(gòu)不發(fā)生改變,使用了位移約束條件。并且利用GPU計(jì)算框架CUDA對(duì)算法進(jìn)行了效率優(yōu)化[7],從而確保重建過(guò)程具備較好的實(shí)時(shí)性和交互性。
規(guī)則的體數(shù)據(jù)是三維空間中某一個(gè)區(qū)域中的采樣,且采樣點(diǎn)在x,y,z三個(gè)方向的分布是均勻的。因此體數(shù)據(jù)可以用三維數(shù)字矩陣來(lái)表示,即v(i,j,k)。移動(dòng)立方體算法處理的基本單元是立方體或體素(Voxel),它是邏輯上的立方體,由相鄰層上對(duì)應(yīng)的四個(gè)采樣點(diǎn)組成八個(gè)頂點(diǎn)。移動(dòng)立方體算法的本質(zhì)是從一個(gè)三維的數(shù)據(jù)場(chǎng)中抽取出一個(gè)等值面,所以也被稱為等值面提取(Isosurface Extraction)算法。在三維體數(shù)據(jù)中被等值面包圍的部分及為感興趣區(qū)域(ROI)。等值面是空間的具有某個(gè)相同值的點(diǎn)的集合,它可表示為
{(x,y,z)|f(x,y,z)=T} ,T為常數(shù)
(1)
移動(dòng)立方體算法的基本思想是:逐個(gè)遍歷數(shù)據(jù)場(chǎng)中的所有體素,判斷體素的八個(gè)頂點(diǎn)與所要求的等值面的內(nèi)外關(guān)系,在與等值面相交的體素中,采用線性插值法計(jì)算出等值面與體素的交點(diǎn)。然后,根據(jù)體素頂點(diǎn)和等值面之間的內(nèi)外關(guān)系,再將等值面與體素的交點(diǎn)按照一定方式連接成三角面片,作為等值面在該體素內(nèi)的一個(gè)逼近表示[2]。
盡管移動(dòng)立方體算法本身能夠很好地實(shí)現(xiàn)三維重建功能,但還是存在著不足。在構(gòu)造等值面時(shí),它是用三角形面片擬合逼近等值面的方式來(lái)實(shí)現(xiàn)的,但等值面是一個(gè)三次曲面,等值面與體素面的交線是一條雙曲線[2],如果體素很小,這種近似是可以忽略的,但由于體數(shù)據(jù)的采樣密度是任意的,構(gòu)造的體素大小也是有多種可能,在采樣密度比較低、體素不夠小的情況下,抽取出的三角面片與等值面存在差異[8],從而達(dá)不到重建所要求的逼近精度要求,影響重建效果。
對(duì)于采樣密度稀疏的體數(shù)據(jù),本文提出先對(duì)體數(shù)據(jù)進(jìn)行分割,提取出感興趣區(qū)域內(nèi)的體素,再通過(guò)對(duì)體數(shù)據(jù)進(jìn)行變形的方式來(lái)提高重建的精確度,同時(shí)保證體數(shù)據(jù)的拓?fù)浣Y(jié)構(gòu)不變。
本算法需要對(duì)體數(shù)據(jù)中感興趣區(qū)域內(nèi)體素的頂點(diǎn)進(jìn)行位移,從而使得體素包含的三角面片精確度更高。在這一過(guò)程中,位于感興趣區(qū)域外的體素與算法無(wú)關(guān),因此,對(duì)體數(shù)據(jù)進(jìn)行分割可以避免不必要的計(jì)算,很好地提高算法的效率。
盡管傳統(tǒng)的移動(dòng)立方體算法大多采用閾值分割法對(duì)待重建的體數(shù)據(jù)進(jìn)行處理[9],但它仍然存在著許多缺點(diǎn),比如說(shuō)分割的不是很準(zhǔn)確、圖像內(nèi)部信息的丟失等等。所以,本文采用了交互式區(qū)域生長(zhǎng)法,為了搜索感興趣區(qū)域內(nèi)的體素,在選取種子點(diǎn)后,使用區(qū)域增長(zhǎng)的方法來(lái)搜索體數(shù)據(jù)[10-11]。采用區(qū)域增長(zhǎng)的策略主要涉及到種子點(diǎn)選取和其它元素加入種子點(diǎn)集合的策略。種子體素選取就是根據(jù)指定閾值選取一個(gè)或一些體素,然后從這個(gè)或這些體素出發(fā),尋找感興趣區(qū)域內(nèi)所有體素。先找到具有要抽取等值面的器官或者物體輪廓的片層,對(duì)該片層進(jìn)行邊沿提取,這些邊沿點(diǎn)和這些邊沿點(diǎn)所在層次的上一層的點(diǎn)形成的體素為候選種子體素。閾值計(jì)算的方法為:設(shè)選擇的邊沿點(diǎn)為p1,p2,…,pn,各點(diǎn)的灰度值分別為f(p1),f(p2),…,f(pn),那么等值面的閾值為
(2)
對(duì)于所選擇的候選種子體素先根據(jù)計(jì)算出的閾值進(jìn)行判斷,那些不含有等值面的體素從我們所選擇體素中剔除,剩余的體素為種子體素。
種子點(diǎn)集合增長(zhǎng)的方法為:對(duì)一個(gè)位于感興趣區(qū)域內(nèi)的體素,它的一個(gè)或多個(gè)面上有一條等值邊,則在與這一個(gè)或多個(gè)面上相鄰的體素也是位于感興趣區(qū)域內(nèi),將其加入感興趣區(qū)域內(nèi)體素的集合;反之,它的六個(gè)面均未與等值面相交,則它的所有相鄰體素也是位于感興趣區(qū)域內(nèi)。本文中體數(shù)據(jù)分割的步驟為:
1) 選取種子點(diǎn),計(jì)算閾值,形成種子體素,加入感興趣區(qū)域內(nèi)體素隊(duì)列;
2) 按層次順序從感興趣區(qū)域內(nèi)體素隊(duì)列中取出體素,計(jì)算出其與等值面相交信息;
3) 根據(jù)體素等值面的信息找到?jīng)]有入隊(duì)的相鄰的體素入隊(duì),轉(zhuǎn)2);
4) 當(dāng)遍歷完所有體素后,體數(shù)據(jù)分割結(jié)束。
本文引入了體數(shù)據(jù)變形的方式對(duì)稀疏的體數(shù)據(jù)進(jìn)行三維重建前的預(yù)處理,以防止出現(xiàn)三角面片與真實(shí)等值面之間存在過(guò)大差異,提高擬合逼近后的等值面的精確度。在體數(shù)據(jù)變形后必須滿足:1)體素內(nèi)的三角面片更加逼近等值面;2)保證體數(shù)據(jù)原來(lái)包含的拓?fù)浣Y(jié)構(gòu)不變。
假定一個(gè)稀疏體數(shù)據(jù)集為Q,等值面閥值為T(mén),則重建的等值面為
S={v|f(v)=T}
(3)
其中f(p)為采樣函數(shù),v為采樣點(diǎn)。因采樣密度比較稀疏,從Q中擬合出的隱式等值面S與真實(shí)等值面S0之間必定存在較大差異,也就是S與S0之間的豪斯托夫距離過(guò)大,而這也在很大程度上影響了三維重建效果。取變形函數(shù):
ω:Q→Q′
(4)
在通過(guò)變形函數(shù)的轉(zhuǎn)換后,得到新的體數(shù)據(jù)集Q′,而Q′中的等值面為:
S′={v′|f′(v′)=T}
(5)
其中
(6)
從上述公式可以看出,函數(shù)ω是體數(shù)據(jù)變形的重點(diǎn)所在,也是本文的研究重點(diǎn)。函數(shù)ω必須使得從Q′中擬合的等值面S′與真實(shí)等值面S0之間差異減小,同時(shí)Q′能夠滿足前面所說(shuō)的兩個(gè)條件。
本文中采用了改變體數(shù)據(jù)中感興趣區(qū)域內(nèi)體素的頂點(diǎn)位置來(lái)實(shí)現(xiàn)體數(shù)據(jù)變形,其中頂點(diǎn)的位移量最為關(guān)鍵,它直接影響到函數(shù)ω的變形效果,它的計(jì)算是根據(jù)頂點(diǎn)的相鄰點(diǎn)位置及采樣值得出。為了解決因?yàn)轶w素頂點(diǎn)的位移量相對(duì)顯示尺寸非常小, 導(dǎo)致單次位移的效果并不明顯的問(wèn)題,本文采用了對(duì)采樣點(diǎn)進(jìn)行多次迭代位移的方法。迭代的結(jié)束通過(guò)在每次迭代過(guò)程中發(fā)生的位移量被累加,直到總位移量S達(dá)到設(shè)置值停止迭代或是設(shè)定迭代次數(shù)的上限。
圖1 體素頂點(diǎn)位移
如圖1(a)所示,A是三維體數(shù)據(jù)中的某一層,W是A中的采樣點(diǎn)集合,P是A中感興趣區(qū)域外的采樣點(diǎn)集合(即無(wú)關(guān)體素的頂點(diǎn)),M是A中感興趣區(qū)域內(nèi)的采樣點(diǎn)集合,f(vi)是頂點(diǎn)vi∈M的值。vi的26個(gè)鄰點(diǎn)組成集合Ni,其中ni,j是vi的第j個(gè)鄰點(diǎn)。
W={wi|wi∈A}
(7)
P={pi|pi∈λA}
(8)
M=W-P
(9)
Ni={ni,j|ni,j是vi的第j個(gè)鄰點(diǎn)}
(10)
變形的過(guò)程是通過(guò)迭代的方式完成,在每次迭代中,體數(shù)據(jù)中vi的位置都會(huì)發(fā)生矢量大小為di的位移,如圖1(b)所示。因?yàn)閱未挝灰屏肯鄬?duì)顯示尺寸非常小,所以迭代的次數(shù)越多,重建的精確度也就越好,當(dāng)?shù)螖?shù)達(dá)到一定量時(shí),改善效果不再出現(xiàn)明顯提升。頂點(diǎn)vi在經(jīng)過(guò)n次迭代位移后,它的位置為
,2,…,N
(11)
采樣點(diǎn)的位移矢量di的計(jì)算與采樣點(diǎn)的26個(gè)鄰點(diǎn)ni,j的坐標(biāo)及采樣值有關(guān),公式如下
(12)
其中
(13)
μi是點(diǎn)vi的26個(gè)鄰點(diǎn)采樣值的總和,μij是計(jì)算位移矢量di時(shí)每個(gè)鄰點(diǎn)相應(yīng)的權(quán)重。由公式(12)可以看出,位移矢量di的計(jì)算與采樣函數(shù)無(wú)關(guān),即體數(shù)據(jù)是否歸一化對(duì)di的計(jì)算沒(méi)有影響。
本算法中為了保證在變形過(guò)程中體數(shù)據(jù)本來(lái)的拓?fù)浣Y(jié)構(gòu)不變,對(duì)位移矢量di采用了一個(gè)約束條件,限制了位移量的大小,避免因?yàn)槲灰屏窟^(guò)大而導(dǎo)致體素拓?fù)浣Y(jié)構(gòu)的改變,如公式14所示
(14)
通過(guò)變形得到Q′后,根據(jù)公式6-7可以看出,要得出新的擬合等值面S′必須計(jì)算出Q′中的采樣函數(shù)f′和函數(shù)η。在Q中取一個(gè)采樣點(diǎn)V,其值和空間位置為別為f(v)和v,經(jīng)過(guò)變形后V在Q′中的值和空間位置為f′(v′)和v′ 。要計(jì)算出f′(v′)則必須先確定v′在Q中所屬的體素C,也就是得出函數(shù)η,可以通過(guò)v′的坐標(biāo)值得出。對(duì)三維數(shù)據(jù)場(chǎng)中空間上的任意一點(diǎn),都可以通過(guò)對(duì)該點(diǎn)所屬體素的八個(gè)頂點(diǎn)使用三線性插值公式得出其值,因此,最后f′(v′)可以由體素C的八個(gè)頂點(diǎn)的采樣值來(lái)插值估算。三線性插值公式如下
F(x,y,z)=(1-x)(1-y)(1-z)F(0,0,0)+
(1-x)(1-y)zF(0,0,1)+(1-x)y(1-z)
F(0,1,0)+x(1-y)(1-z)F(1,0,0)+
(1-x)yzF(0,1,1)+xy(1-z)F(1,1,0)+
x(1-y)zF(1,0,1)+xyzF(1,1,1)
(15)
經(jīng)過(guò)化簡(jiǎn)可得
F(x,y,z)=axyz+bxy+cyz+dzx+
ex+fy+gz+h
(16)
其中F(i,j,k)為體素C頂點(diǎn)的采樣值,a,b,c,d,e,f,g,h為常數(shù),由體素C的八個(gè)頂點(diǎn)值唯一決定。
本文所提出的算法步驟如下:
1) 采用了區(qū)域生長(zhǎng)法對(duì)體數(shù)據(jù)進(jìn)行分割,具體流程如2.1中所述;
2) 設(shè)定迭代結(jié)束的條件位移總量S0或迭代次數(shù)L0;
3) 遍歷分割后的體數(shù)據(jù)集Q,對(duì)每個(gè)體素的頂點(diǎn)進(jìn)行位移,同時(shí)位移量與總位移量S相加;
4) 完成當(dāng)次遍歷后,當(dāng)前迭代次數(shù)L加1,同時(shí)判斷是否達(dá)到迭代停止條件,如果沒(méi)有,繼續(xù)步驟3;
5) 結(jié)束體數(shù)據(jù)變形,對(duì)體數(shù)據(jù)集Q′進(jìn)行三維重建,抽取等值面S′。
本文中的采樣點(diǎn)位移矢量是根據(jù)體數(shù)據(jù)空間中采樣點(diǎn)的鄰點(diǎn)計(jì)算得出,而在計(jì)算過(guò)程中由于遍歷的順序不同,采樣點(diǎn)的鄰點(diǎn)或先于或后于采樣點(diǎn)發(fā)生了位移,鄰點(diǎn)的變化也影響著采樣點(diǎn)位移矢量的計(jì)算,也就是說(shuō)計(jì)算順序的不同,對(duì)計(jì)算的結(jié)果有著一定程度影響。但是,由于本算法是一個(gè)對(duì)體數(shù)據(jù)中所有點(diǎn)進(jìn)行多次迭代運(yùn)算的過(guò)程,在一次迭代中因計(jì)算先后關(guān)系所產(chǎn)生的鄰點(diǎn)變化,相對(duì)于整個(gè)運(yùn)算過(guò)程,對(duì)采樣點(diǎn)位移矢量計(jì)算的影響可以忽略不計(jì)。設(shè)定在每次迭代過(guò)程中,計(jì)算采樣點(diǎn)的位移矢量時(shí),所用的鄰點(diǎn)的狀態(tài)(位置和采樣值)都取上一次迭代后的計(jì)算結(jié)果,因此,在每次迭代過(guò)程中,對(duì)每個(gè)采樣點(diǎn)的位移計(jì)算都是一個(gè)獨(dú)立單元,可以使用多線程訪問(wèn)共享內(nèi)存的方式進(jìn)行并行運(yùn)算,這樣可以很好的提高了算法的運(yùn)算效率和運(yùn)算速度。
本文中算法的并行實(shí)現(xiàn)是基于CUDA平臺(tái)[7]。在CUDA的架構(gòu)中,CPU和GPU是協(xié)同工作的,并不是只有GPU在工作,其中CPU負(fù)責(zé)處理邏輯性較強(qiáng)的事務(wù)以及串行計(jì)算,而GPU則主要專注于并行處理任務(wù)。因此在CUDA的編程模型中,總是需要給CPU和GPU進(jìn)行分工。在算法實(shí)現(xiàn)的過(guò)程中CPU部分的主要工作是:確定kernel線程的組織方式;將體數(shù)據(jù)讀入并傳入顯存;分配必要的內(nèi)存空間以及通過(guò)循環(huán)迭代方式調(diào)用Kernel函數(shù)。在CPU完成必要的準(zhǔn)備工作后,就可以執(zhí)行kernel函數(shù)了。本算法中kernel主要是負(fù)責(zé)頂點(diǎn)位移計(jì)算的部分,大致可分為三個(gè)步驟:計(jì)算位移后的頂點(diǎn)的空間位置;計(jì)算位移后的頂點(diǎn)的數(shù)值(即灰度值);更新存放位移變形后體數(shù)據(jù)的數(shù)組。在上述kernel函數(shù)里的三個(gè)步驟,是由線程串行執(zhí)行下來(lái)的,而在GPU中同時(shí)有多個(gè)線程在并發(fā)執(zhí)行kernel函數(shù),因此算法的運(yùn)算速度相較CPU上提升十分明顯。
采用開(kāi)發(fā)工具VS2005與OpenGL實(shí)現(xiàn)本文提出的算法,在實(shí)驗(yàn)中選取的數(shù)據(jù)集是一組球體數(shù)據(jù)(sphere)與頭骨CT數(shù)據(jù)(skull),數(shù)據(jù)的規(guī)模分別是32×32×32和64×64×64,點(diǎn)距分別為0.556 mm和0.435 mm,對(duì)兩組體數(shù)據(jù)使用傳統(tǒng)移動(dòng)立方體算法和本文的算法進(jìn)行三維重建。對(duì)于重建后等值面的精確度,可以通過(guò)隱式等值面與真實(shí)等值面之間的Hausdorff距離來(lái)衡量。如圖2所示,對(duì)于兩組數(shù)據(jù)集,采用本文中算法得出的Hausdorff距離比傳統(tǒng)移動(dòng)立方體算法的距離明顯要小,并且隨著迭代次數(shù)的增加,Hausdorff距離越來(lái)越小,當(dāng)?shù)_(dá)到一定次數(shù)時(shí),Hausdorff距離不再明顯變化。
從圖3可以看出,使用傳統(tǒng)移動(dòng)立方體算法重建的三維球體模型表面存在很多凹凸,存在著成像效果不好,精確度不高的問(wèn)題。與之相比,用本文中的算法重建的模型表面更為平滑逼真,同時(shí),可以看出隨著迭代次數(shù)的增多,模型的精確度也越高。
圖2 兩種算法的Hausdorff距離
圖3 球體重建對(duì)比圖
與傳統(tǒng)移動(dòng)立方體算法重建出的三維模型比較,使用本文算法在顯示效果上大體一致,但在精確度方面有所提高。如圖4所示,頭骨右上的凹陷部分在圖4(a)中的顯示效果略顯模糊,繪制出的網(wǎng)格出現(xiàn)重疊;從圖4(b)可以明顯看出在使用本文算法進(jìn)行體數(shù)據(jù)處理后(迭代次數(shù)為100次),繪制的精確度大大提高,對(duì)于凹陷部分的顯示效果增強(qiáng),有助于用戶對(duì)局部細(xì)節(jié)有著更精確的了解。
如表1所示,對(duì)于同樣的體數(shù)據(jù)集,與John提出的同樣基于體數(shù)據(jù)變形的自適應(yīng)算法相比[6],本算法在經(jīng)過(guò)體數(shù)據(jù)分割后,所需要計(jì)算的頂點(diǎn)數(shù)量明顯減少,算法的效率也隨之提高。
接下來(lái)在CUDA平臺(tái)上實(shí)現(xiàn)算法加速,硬件配置為:Core 2 T6600處理器,2 GB DDR3內(nèi)存,NVIDIA Geforce GT 130M(512MB)顯卡。如表2所示,經(jīng)過(guò)算法優(yōu)化后的并行加速,與John的自適應(yīng)算法[6]相比或是與在CPU上直接實(shí)現(xiàn)本文算法相比,運(yùn)算速度有著大幅度提升,提升大約為20倍左右,這也保證了在應(yīng)用過(guò)程中,本算法能夠滿足用戶實(shí)時(shí)性的要求。同時(shí),隨著硬件性能的提升,本算法的并行加速效果會(huì)越明顯。
表1 頂點(diǎn)數(shù)量的比較(迭代次數(shù)均為1)
表2 算法速度對(duì)比
為了解決三維重建過(guò)程中,對(duì)于采樣稀疏的體數(shù)據(jù)移動(dòng)立方體算法并不能滿足所需精確度要求的問(wèn)題,本文提出了一種基于體數(shù)據(jù)變形的自適應(yīng)移動(dòng)立方體算法。采用本算法對(duì)密度稀疏的三維數(shù)據(jù)場(chǎng)進(jìn)行三維重建,體數(shù)據(jù)會(huì)發(fā)生自適應(yīng)形變,感興趣區(qū)域內(nèi)的采樣點(diǎn)密度得到提高,體素內(nèi)所包含的三角面片更加逼近等值面,同時(shí)并未增加采樣點(diǎn)的數(shù)量。因此相比采用增加采樣點(diǎn)策略的改進(jìn)算法,在進(jìn)行等值面繪制時(shí)本算法在運(yùn)算效率上更為優(yōu)越。
為了進(jìn)一步提高算法效率,本文采用交互式區(qū)域生長(zhǎng)法對(duì)體數(shù)據(jù)進(jìn)行分割,并且還使用CUDA對(duì)算法進(jìn)行并行加速,這樣既避免了在體數(shù)據(jù)變形過(guò)程中對(duì)感興趣區(qū)域外采樣點(diǎn)的無(wú)關(guān)運(yùn)算,又可以在三維重建過(guò)程中提供較好的實(shí)時(shí)性與交互性。下一步的研究工作是在對(duì)大體數(shù)據(jù)進(jìn)行三維重建后,進(jìn)行局部放大時(shí)如何保證圖像效果的精確度。
參考文獻(xiàn):
[1]伍國(guó)永,羅月童.體數(shù)據(jù)的高質(zhì)量可視化[C]//全國(guó)第21屆計(jì)算機(jī)技術(shù)與應(yīng)用學(xué)術(shù)會(huì)議,2010: 32-35.
[2]LORENSEN W E,CLINE H E.Marching cubes: a high resolution 3D surface construction algorithm [J].Computer Graphics,1987,21(4): 163-169.
[3]WEBER G H,KREYLOS O,LIGOCKI T J.Extraction of crack-free isosurfaces from adaptive mesh refinement data [C]// Data Visualization 2001,2001: 25-34.
[4]YING B,XIAO H,JERRY L P.Octree grid topology preserving geometric deformable model for three-dimensional medical image segmentation [J].Computer Science,2007,4584: 556-568.
[5]PAIVA A,LOPES H.Robust adaptive meshes for implicit surfaces [C]// SIBGRAPI’06,2006: 205-212.
[6]CONGOTE J,AITOR M,OSCAR R.Extending marching cubes with adaptive methods to obtain more accurate iso-surfaces [J].Communications in Computer and Information Science,2010,68(2): 35-44.
[7]NVIDIA CUDA programming guide 1.0 [EB/OL].http://www.nvidia.com/object/cuda_Develop.html.
[8]TIMOTHY S N,HONG Y.A survey of the marching cubes algorithm [J].Computers & Graphics,2006,30: 854-879.
[9]TIAN J,XUE J,DAI Y K.A novel software platform for medical image processing and analyzing [J].IEEE Transactions on Information Technology in Biomedicine,2008,12(6): 800-812.
[10]ADAMS R,LEANNE B.Correspondence seeded region growing [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1994,16(6): 641-647.
[11]LONG C J,ZHAO J H,RAVINDRA S G.A new region growing algorithm for triangular mesh recovery from scattered 3D points [J].Transactions on Edutainment VI,2011,6758: 237-246.