寧姣+董曉+馮宗雪+周茂霞
摘 要: 三維模型切割技術(shù)有助于對(duì)模型內(nèi)部做深入了解,在生命科學(xué)、醫(yī)學(xué)等領(lǐng)域發(fā)揮著越來(lái)越重要的作用,且該技術(shù)在不斷地完善。為了能夠得到更有用的內(nèi)部信息,實(shí)現(xiàn)任意角度的切割。首先論述了任意角度平面切割算法原理,算法核心為面的點(diǎn)法式方程,點(diǎn)法式方程采用直角坐標(biāo),其缺點(diǎn)是確定的切割方向不夠直觀,因此增加了極坐標(biāo)形式,給出轉(zhuǎn)換原理。然后基于VTK進(jìn)行算法實(shí)現(xiàn),得出一次切多面的更有效的結(jié)果。實(shí)驗(yàn)結(jié)果表明,所給出的任意角度平面切割算法,可行有效,并有較強(qiáng)的靈活性。
關(guān)鍵詞: 任意角度; 平面切割; 點(diǎn)法式方程; 三維模型; VTK; 多面切割
中圖分類(lèi)號(hào): TN911.73?34; TP391 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2018)03?0054?03
Abstract: The cutting technology of 3D model is helpful to understand the internal model deeply, plays a more important role in life science, medicine and other fields, and is improved increasingly. In order to get more useful internal information, the arbitrary?angle cutting is realized. The theory of arbitrary?angle plane cutting algorithm is discussed. The point?normal form equation of a plane as the core of the algorithm adopts the rectangular coordinates, has the intuition for the determined cutting direction, and can increase the polar coordinates form, so the transformation principle is given. The algorithm implementation based on VTK is realized. A more effective result for multi?surface cutting at one time is obtained. The experimental results show that the arbitrary?angle plane cutting algorithm is feasible and effective, and has strong flexibility.
Keywords: arbitrary angle; plane cutting; point?normal form equation; 3D model; VTK; multi?surface cutting
0 引 言
相比較二維平面來(lái)說(shuō),三維模型可以展現(xiàn)任意方向的實(shí)體結(jié)構(gòu)及任意方向的平面投影[1],目前得到了廣泛應(yīng)用。但三維模型只顯示表面結(jié)構(gòu)信息,而表面結(jié)構(gòu)將很多內(nèi)部對(duì)象包裹在里面[2],使得無(wú)法看到,想要更好地了解里面的對(duì)象就要通過(guò)切割技術(shù)來(lái)實(shí)現(xiàn)。在VTK中,對(duì)重建物體的切割主要有兩種方法[3?4]:一種是利用平面進(jìn)行剪切;另一種是利用立方體進(jìn)行切割。本文主要討論的是第一種方法,即對(duì)醫(yī)學(xué)三維重建的面繪制和體繪制進(jìn)行平面剪切[5]。面切割是一類(lèi)重要的方法,它通過(guò)平面進(jìn)行剪切,可以同時(shí)用多個(gè)剪切面進(jìn)行切割,使內(nèi)部的信息再以平面的形式展現(xiàn),讓觀察者可以任意角度的觀察內(nèi)部的圖像,獲取更多有用的信息。
根據(jù)切割面方向可將平面切割分為正交切割和任意角度切割[6]。任意角度切割技術(shù)的應(yīng)用更加廣泛,可以根據(jù)需要對(duì)切割面的方向進(jìn)行設(shè)定,將內(nèi)部不同層次的對(duì)象在同一個(gè)平面內(nèi)顯示出來(lái),實(shí)用性更強(qiáng),同時(shí)人們對(duì)這種方法的要求也越來(lái)越高。因此,任意角度平面切割技術(shù)的研究具有重要的現(xiàn)實(shí)意義與應(yīng)用價(jià)值。
1 任意角度切割算法原理
任意角度切割是面切割的一種,關(guān)鍵就在于切割面的確定,可根據(jù)面的點(diǎn)法式確定切割面,其流程如圖1所示。
首先是點(diǎn)的選取。點(diǎn)在原則上是可以隨意選取的,但是在實(shí)際例子中,要根據(jù)實(shí)際的情況選取合適的點(diǎn)。用表示選取的一點(diǎn),該點(diǎn)為切割平面上的一點(diǎn),是在切割之前根據(jù)需要在三維模型內(nèi)部選取的,該點(diǎn)屬于切割平面。然后是法向量的選取,根據(jù)需要可以給定切割面的角度,即切割面的方向,法向量的給定可以分兩種:一種是直角坐標(biāo);另一種是極坐標(biāo),而角度的確定更直觀的形式是極坐標(biāo)的形式,但在應(yīng)用當(dāng)中用到的是空間面的點(diǎn)法式,所以極坐標(biāo)要通過(guò)公式轉(zhuǎn)化為直角坐標(biāo)。
假設(shè)給出的法向量的極坐標(biāo)為,根據(jù)極坐標(biāo)與直角坐標(biāo)的轉(zhuǎn)換公式(1),可得到為轉(zhuǎn)換后切割面的直角坐標(biāo)系中的法向量形式,切割面的角度就是由該向量確定的,由這兩個(gè)條件就可以根據(jù)空間平面點(diǎn)法式方程(2)確定切割面。
切割面確定后,下一步就是切割面的映射,可通俗理解為求切割面和三維模型的交集,將交集部分添加到三維模型中,使切割面以平面的形式在三維模型中顯示。
切割面確定后,就將三維模型用這一平面分成了兩部分,而當(dāng)法向量確定后,所顯示的部分只是切割面所切出來(lái)的兩個(gè)切面中的一個(gè),該部分的切面的外法向量和切割面的法向量是一致的,而另一部分則被切掉了,如圖2所示。
在圖2中,左邊為一個(gè)三維的立體圖,在該立體圖中確定一個(gè)點(diǎn)及法向量,黑點(diǎn)表示確定的點(diǎn),箭頭表示法向量,則切割完成后的效果圖就是右邊實(shí)線部分所顯示的立體圖。同樣,還可以在此基礎(chǔ)上設(shè)定其他的點(diǎn)和法向量,這里要注意的是,在設(shè)置的時(shí)候要保證切割面與剩下的立方體有交集才可以,也就是如果一次切割后再進(jìn)行切割時(shí),以第一次切割完成后的部分作為第二次切割的模型,以此類(lèi)推,可以進(jìn)行多次切割,如果沒(méi)有交集,那將是沒(méi)有意義的切割,如圖3所示。endprint
2 算法在VTK中的實(shí)現(xiàn)
算法是在基于Windows平臺(tái)上配置好視覺(jué)化工具函數(shù)庫(kù)(VTK)[7?9]的VS2010軟件中實(shí)現(xiàn)的,任意角度切割所采用的模型也是在VTK函數(shù)庫(kù)下用體繪制和面繪制兩種方法重建出來(lái)的。
任意角度切割就是在三維模型中找到一個(gè)點(diǎn),給定切割面的法向量,相應(yīng)的就可以得到切割面,在程序中用SetOrigin和SetNormal兩個(gè)函數(shù)完成該項(xiàng)工作。SetOrigin定義為三維空間中的一點(diǎn),同時(shí)也是切割平面上的一點(diǎn),然后通過(guò)SetNormal給定切割平面的法向量,得到相應(yīng)的切割平面。對(duì)三維模型進(jìn)行切割后,用函數(shù)AddClippingPlane()將切割平面加入到重建模型映射中,代碼為:volumeMapper?>AddClippingPlane(plane);plane就是相應(yīng)的切割面。這樣就可以看到該平面內(nèi)的信息,也就完成了一次切割。
當(dāng)然切割一次會(huì)有兩部分,而顯示的只有一部分,是切面外法向量和相同的部分,而另一個(gè)部分只需要將法向量取反就可以得到了。如果有需要的話,切割面可以增加,可以一次進(jìn)行多平面切割。
3 實(shí)驗(yàn)驗(yàn)證
實(shí)驗(yàn)是在處理器為IntelCoreTM i7?4790 CPU@3.60 GHz,內(nèi)存為8.00 GB的WIN7系統(tǒng)下配置好VTK工具包的VS2010軟件中實(shí)現(xiàn)的。
3.1 實(shí)驗(yàn)數(shù)據(jù)
三維模型的數(shù)據(jù)可以通過(guò)VTK重建得到,也可以選取已有的模型直接進(jìn)行切割。這里給出了對(duì)已有模型切割和對(duì)通過(guò)VTK重建的三維模型進(jìn)行切割的實(shí)驗(yàn)。
三維重建以醫(yī)學(xué)圖像為例[10]。重建過(guò)程是先將一組二維CT圖像讀入,部分原圖如圖4所示,這只是其中的4張,該組圖像是一組CT切片,規(guī)格是512×512,共230張。讀取該圖片序列,設(shè)置相應(yīng)的參數(shù),建立等值面,形成三角帶完成皮膚的面繪制,然后通過(guò)設(shè)置顏色和透明度,用光線投影技術(shù)完成體繪制[11],從而對(duì)該組圖片序列圖完成重建,以立體的形式呈現(xiàn),構(gòu)造出進(jìn)行切割的模型如圖5a)所示。已有的模型以一個(gè)簡(jiǎn)單的空心圓柱體為例,如圖5b)所示。
3.2 實(shí)驗(yàn)結(jié)果及分析
在三維模型中設(shè)置一點(diǎn),再設(shè)置法向量,對(duì)三維模型進(jìn)行任意角度切割。切割點(diǎn)確定之后,可以根據(jù)切割面的不同進(jìn)行多次切割。實(shí)驗(yàn)給出了一個(gè)平面、兩個(gè)平面及三個(gè)平面切割的效果圖,結(jié)果如圖6,圖7所示。
圖6中的兩組圖都是用一個(gè)切割面進(jìn)行切割的。圖6a)中的三幅圖是對(duì)已有模型圓柱體進(jìn)行不同角度的切割,該角度是任意的,所以可以根據(jù)需要進(jìn)行切割面的設(shè)定。圖6b)是對(duì)醫(yī)學(xué)圖像進(jìn)行重建,將三維重建模型進(jìn)行切割,切割面的選取同樣可以根據(jù)需要去設(shè)定,切割后顯示出需要的信息。
圖7中的兩組圖是用多個(gè)面進(jìn)行切割的。其中,圖7a)中的兩幅圖是用兩個(gè)面同時(shí)進(jìn)行切割的,圖7b)是用三個(gè)面同時(shí)進(jìn)行切割的。這樣完成一次切割就可以將不同切割面上的信息同時(shí)呈現(xiàn),效率更高。
4 結(jié) 語(yǔ)
在三維模型任意角度平面切割算法原理分析的基礎(chǔ)上,基于VTK平臺(tái),實(shí)現(xiàn)了將已有模型和重建三維模型進(jìn)行任意角度平面切割,該方法可以根據(jù)實(shí)際情況取點(diǎn),設(shè)置切割面的方向,而且可以隨時(shí)對(duì)點(diǎn)和方向進(jìn)行修改,還可以同時(shí)進(jìn)行多面切割,一次呈現(xiàn)多個(gè)面上的信息,靈活性特別大。通過(guò)切割平面擺脫外部結(jié)構(gòu)的遮擋,看到內(nèi)部的信息,更全方位地了解三維模型的內(nèi)外構(gòu)造。方法應(yīng)用性較強(qiáng),在多方面發(fā)揮著重要的作用。
參考文獻(xiàn)
[1] 李婧,李昌華.基于VTK的體繪制系統(tǒng)實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2008,31(12):88?90.
LI Jing, LI Changhua. Volume rendering based on VTK system [J]. Modern electronics technique, 2008, 31(12): 88?90.
[2] 郭圣文.用任意平面對(duì)三維物體實(shí)現(xiàn)剪切的方法[J].微計(jì)算機(jī)信息,2007,23(19):296?297.
GUO Shengwen. With an arbitrary plane of 3D objects to achieve shear method [J]. Microcomputer information, 2007, 23(19): 296?297.
[3] 張娟,熊杰,程昊,等.基于VTK的三維數(shù)據(jù)可視化軟件開(kāi)發(fā)[J].成都大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,33(3):254?256.
ZHANG Juan, XIONG Jie, CHENG Hao, et al. Based on VTK 3D data visualization software development [J]. Journal of Chengdu University (natural science edition), 2014,33(3): 254?256.
[4] ZHENG Pan, BELATON Behari. Craniofacial data registration and visualization survey [C]// Proceedings of Regional Computer Science Postgraduate Conference. [S.l.]: IEEE, 2006: 761?765.
[5] MARCELO G P. Three?dimensional computed tomography landmark measurement in craniofacial surgical planning: experimental validation in vitro [J]. Journal of oral and maxillofacial surgery, 1999, 57(6): 690?694.endprint
[6] 孫少平,楊開(kāi)泰,李斌,等.三維交互式切割技術(shù)在醫(yī)學(xué)圖像處理中的應(yīng)用[J].中國(guó)醫(yī)療器械雜志,2013,37(5):313?314.
SUN Shaoping, YANG Kaitai, LI Bin, et al. 3D interactive cutting technology application in medical image processing [J]. Chinese journal of medical apparatus and instruments, 2013, 37(5): 313?314.
[7] 苗蕤.基于VTK的三維重建實(shí)現(xiàn)平面剪切[J].電子技術(shù)與軟件工程,2015(11):103?104.
MIAO Rui. 3D reconstruction based on VTK implementation plane shear [J]. Electronic technology and software engineering, 2015(11): 103?104.
[8] WILLIAM J S, KENNETH M M, LISA S A, et al. The VTK user′s guide [R]. New York: Kitware Inc., 1998.
[9] TAO Zhijiang, HUANG Hua, ZENG Jun. Three?dimensional reconstruction of medical images based on VTK [J]. Journal of clinical rehabilitative tissue engineering research, 2011, 7(23): 5604?5606.
[10] 賈艷麗,武力.基于VTK人體肺部的三維重建[J].計(jì)算機(jī)與數(shù)字工程,2012(7):105?107.
JIA Yanli, WU Li. 3D reconstruction based on VTK human lung [J]. Computer and digital engineering, 2012(7): 105?107.
[11] 洪鋒,梅炯,李明祿.醫(yī)學(xué)圖像三維重建技術(shù)綜述[J].中國(guó)圖象圖形學(xué)報(bào),2003,8(z1):784?791.
HONG Feng, MEI Jiong, LI Minglu. Medical image 3D reconstruction technology review [J]. Chinese journal of image and graphics, 2003, 8(S1): 784?791.endprint