寧姣+董曉+馮宗雪+周茂霞
摘 要: 三維模型切割技術有助于對模型內部做深入了解,在生命科學、醫(yī)學等領域發(fā)揮著越來越重要的作用,且該技術在不斷地完善。為了能夠得到更有用的內部信息,實現(xiàn)任意角度的切割。首先論述了任意角度平面切割算法原理,算法核心為面的點法式方程,點法式方程采用直角坐標,其缺點是確定的切割方向不夠直觀,因此增加了極坐標形式,給出轉換原理。然后基于VTK進行算法實現(xiàn),得出一次切多面的更有效的結果。實驗結果表明,所給出的任意角度平面切割算法,可行有效,并有較強的靈活性。
關鍵詞: 任意角度; 平面切割; 點法式方程; 三維模型; VTK; 多面切割
中圖分類號: TN911.73?34; TP391 文獻標識碼: A 文章編號: 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 引 言
相比較二維平面來說,三維模型可以展現(xiàn)任意方向的實體結構及任意方向的平面投影[1],目前得到了廣泛應用。但三維模型只顯示表面結構信息,而表面結構將很多內部對象包裹在里面[2],使得無法看到,想要更好地了解里面的對象就要通過切割技術來實現(xiàn)。在VTK中,對重建物體的切割主要有兩種方法[3?4]:一種是利用平面進行剪切;另一種是利用立方體進行切割。本文主要討論的是第一種方法,即對醫(yī)學三維重建的面繪制和體繪制進行平面剪切[5]。面切割是一類重要的方法,它通過平面進行剪切,可以同時用多個剪切面進行切割,使內部的信息再以平面的形式展現(xiàn),讓觀察者可以任意角度的觀察內部的圖像,獲取更多有用的信息。
根據(jù)切割面方向可將平面切割分為正交切割和任意角度切割[6]。任意角度切割技術的應用更加廣泛,可以根據(jù)需要對切割面的方向進行設定,將內部不同層次的對象在同一個平面內顯示出來,實用性更強,同時人們對這種方法的要求也越來越高。因此,任意角度平面切割技術的研究具有重要的現(xiàn)實意義與應用價值。
1 任意角度切割算法原理
任意角度切割是面切割的一種,關鍵就在于切割面的確定,可根據(jù)面的點法式確定切割面,其流程如圖1所示。
首先是點的選取。點在原則上是可以隨意選取的,但是在實際例子中,要根據(jù)實際的情況選取合適的點。用表示選取的一點,該點為切割平面上的一點,是在切割之前根據(jù)需要在三維模型內部選取的,該點屬于切割平面。然后是法向量的選取,根據(jù)需要可以給定切割面的角度,即切割面的方向,法向量的給定可以分兩種:一種是直角坐標;另一種是極坐標,而角度的確定更直觀的形式是極坐標的形式,但在應用當中用到的是空間面的點法式,所以極坐標要通過公式轉化為直角坐標。
假設給出的法向量的極坐標為,根據(jù)極坐標與直角坐標的轉換公式(1),可得到為轉換后切割面的直角坐標系中的法向量形式,切割面的角度就是由該向量確定的,由這兩個條件就可以根據(jù)空間平面點法式方程(2)確定切割面。
切割面確定后,下一步就是切割面的映射,可通俗理解為求切割面和三維模型的交集,將交集部分添加到三維模型中,使切割面以平面的形式在三維模型中顯示。
切割面確定后,就將三維模型用這一平面分成了兩部分,而當法向量確定后,所顯示的部分只是切割面所切出來的兩個切面中的一個,該部分的切面的外法向量和切割面的法向量是一致的,而另一部分則被切掉了,如圖2所示。
在圖2中,左邊為一個三維的立體圖,在該立體圖中確定一個點及法向量,黑點表示確定的點,箭頭表示法向量,則切割完成后的效果圖就是右邊實線部分所顯示的立體圖。同樣,還可以在此基礎上設定其他的點和法向量,這里要注意的是,在設置的時候要保證切割面與剩下的立方體有交集才可以,也就是如果一次切割后再進行切割時,以第一次切割完成后的部分作為第二次切割的模型,以此類推,可以進行多次切割,如果沒有交集,那將是沒有意義的切割,如圖3所示。endprint
2 算法在VTK中的實現(xiàn)
算法是在基于Windows平臺上配置好視覺化工具函數(shù)庫(VTK)[7?9]的VS2010軟件中實現(xiàn)的,任意角度切割所采用的模型也是在VTK函數(shù)庫下用體繪制和面繪制兩種方法重建出來的。
任意角度切割就是在三維模型中找到一個點,給定切割面的法向量,相應的就可以得到切割面,在程序中用SetOrigin和SetNormal兩個函數(shù)完成該項工作。SetOrigin定義為三維空間中的一點,同時也是切割平面上的一點,然后通過SetNormal給定切割平面的法向量,得到相應的切割平面。對三維模型進行切割后,用函數(shù)AddClippingPlane()將切割平面加入到重建模型映射中,代碼為:volumeMapper?>AddClippingPlane(plane);plane就是相應的切割面。這樣就可以看到該平面內的信息,也就完成了一次切割。
當然切割一次會有兩部分,而顯示的只有一部分,是切面外法向量和相同的部分,而另一個部分只需要將法向量取反就可以得到了。如果有需要的話,切割面可以增加,可以一次進行多平面切割。
3 實驗驗證
實驗是在處理器為IntelCoreTM i7?4790 CPU@3.60 GHz,內存為8.00 GB的WIN7系統(tǒng)下配置好VTK工具包的VS2010軟件中實現(xiàn)的。
3.1 實驗數(shù)據(jù)
三維模型的數(shù)據(jù)可以通過VTK重建得到,也可以選取已有的模型直接進行切割。這里給出了對已有模型切割和對通過VTK重建的三維模型進行切割的實驗。
三維重建以醫(yī)學圖像為例[10]。重建過程是先將一組二維CT圖像讀入,部分原圖如圖4所示,這只是其中的4張,該組圖像是一組CT切片,規(guī)格是512×512,共230張。讀取該圖片序列,設置相應的參數(shù),建立等值面,形成三角帶完成皮膚的面繪制,然后通過設置顏色和透明度,用光線投影技術完成體繪制[11],從而對該組圖片序列圖完成重建,以立體的形式呈現(xiàn),構造出進行切割的模型如圖5a)所示。已有的模型以一個簡單的空心圓柱體為例,如圖5b)所示。
3.2 實驗結果及分析
在三維模型中設置一點,再設置法向量,對三維模型進行任意角度切割。切割點確定之后,可以根據(jù)切割面的不同進行多次切割。實驗給出了一個平面、兩個平面及三個平面切割的效果圖,結果如圖6,圖7所示。
圖6中的兩組圖都是用一個切割面進行切割的。圖6a)中的三幅圖是對已有模型圓柱體進行不同角度的切割,該角度是任意的,所以可以根據(jù)需要進行切割面的設定。圖6b)是對醫(yī)學圖像進行重建,將三維重建模型進行切割,切割面的選取同樣可以根據(jù)需要去設定,切割后顯示出需要的信息。
圖7中的兩組圖是用多個面進行切割的。其中,圖7a)中的兩幅圖是用兩個面同時進行切割的,圖7b)是用三個面同時進行切割的。這樣完成一次切割就可以將不同切割面上的信息同時呈現(xiàn),效率更高。
4 結 語
在三維模型任意角度平面切割算法原理分析的基礎上,基于VTK平臺,實現(xiàn)了將已有模型和重建三維模型進行任意角度平面切割,該方法可以根據(jù)實際情況取點,設置切割面的方向,而且可以隨時對點和方向進行修改,還可以同時進行多面切割,一次呈現(xiàn)多個面上的信息,靈活性特別大。通過切割平面擺脫外部結構的遮擋,看到內部的信息,更全方位地了解三維模型的內外構造。方法應用性較強,在多方面發(fā)揮著重要的作用。
參考文獻
[1] 李婧,李昌華.基于VTK的體繪制系統(tǒng)實現(xiàn)[J].現(xiàn)代電子技術,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] 郭圣文.用任意平面對三維物體實現(xiàn)剪切的方法[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ù)可視化軟件開發(fā)[J].成都大學學報(自然科學版),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] 孫少平,楊開泰,李斌,等.三維交互式切割技術在醫(yī)學圖像處理中的應用[J].中國醫(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的三維重建實現(xiàn)平面剪切[J].電子技術與軟件工程,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].計算機與數(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ī)學圖像三維重建技術綜述[J].中國圖象圖形學報,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