




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
工具包的設計與實現
1可視化工具包的提出科學計算的可視化是1987年b.h.mccormick和其他科學家根據美國國家科學協會(nationalacademyof戲劇性科學)發表的關于科學數學可視化的報告正式提出的,其中顯示了可視化的繁榮。可視化工具包(VisualizationToolkit)就是在這樣的背景下產生的。可視化是運用計算機圖形學和圖像處理技術將科學計算過程及計算結果的數據轉換為圖形及圖像在屏幕上顯示出來并進行交互處理的理論方法和技術。近年來伴隨著計算機硬件水平的提高和可視化理論及方法的不斷完善,可視化應用已經涉及到醫學、地球科學、產品設計、建筑等各個領域。由于可視化開發的過程中涉及到一些專業知識,所以希望能有一個專門的可視化開發工具能夠簡化這一過程以利于其廣泛應用。本文引入了一個功能強大、使用方便、源代碼開放的可視化開發工具(VTK),它大大提高了我們的工作效率。2vtk編碼簡介VTK(VisualizationToolkit)是一個開放源代碼,面向對象的軟件系統。VTK從功能上分為3D計算機圖形顯示(GraphicsModel),圖像處理(ImagingProcessingModel)和可視化處理(VisualizationModel)。它包括了圖形圖像和可視化領域內的上百種算法,可以跨平臺使用。VTK是一個目標庫,可以很容易嵌入到應用程序中并在此基礎上開發自己的庫函數,從而建立獨立的大型應用系統。在VTK編譯層中,有關圖像處理相關數據結構、算法、時間關鍵性的功能等被封裝成C++對象,為VTK其它的類或程序所調用。編譯后的VTK動態鏈接庫,在與相應腳本語言綁定以后,形成這些解釋型語言的接口,稱為解釋層部分。利用解釋層接口可以很方便的使用Tcl/Tk,Python/Tk,JavaAWT等解釋型語言進行快速開發或試驗VTK的新功能,極大的提高了效率。圖1說明VTK在圖像處理程序里所處的層次及內核與其它高級語言的關系。2.2tkob裝置和vtkmoperationVTK(VisualizationToolkit)采用的是流水線(pipeline)的機制,幾乎可以對任何類型的數據進行處理,并且提供了許多相應的類對各種類型的數據進行轉換或處理,所以我們可以根據需要建立起自己的可視化流程。vtkObject是VTK的基類,它為整個可視化流程提供基本的方法。vtkSource是vtkObject的派生類和vtkFilter的父類,它為整個可視化流程定義具體的行為和接口。vtkFilter是vtkSource的派生類,經過filter的處理后,原始的數據能夠轉換成可以直接用某種算法模塊進行處理的形式。vtkMapper是vtkObject的派生類,它將經過filter處理后的應用數據映射成幾何數據,為原始數據和圖像數據之間定義接口。VTK有一個特點就是對于任何進行可視化的數據它都是通過角色在窗口中表現出來,所以建立目標圖形應該做的工作包括:·建立actor(交互操作者),使用vtkActor類來繪制。幾何數據的屬性通過方法SetMapper()告訴演員。·建立renderer(演示者),使用vtkRender類將結果在窗口中顯示出來。演員通過方法AddActor()添加到演示者中。·建立renderwindow(繪制窗口),使用VtkRenderWindow()類來繪制。演示者通過方法AddR-enderer()添加到窗口中。通常使用類vtkRenderWin-dowInteractor可以對目標圖形進行交互操作。2.3vtk地圖處理2.3.1圖形模型2.3.1.燈光的位置VTK中的實現類為vtkLight。它提供了燈光的位置,燈光的開關狀態,亮度,顏色。也可以設置光源的照射角度和衰減程度。在設置好光源后,要把光源加到場景(Renderer)中:2.3.1.聚焦點屬性定義VTK中的實現類為vtkCamera。相機的作用是定義觀察者的位置、聚焦點和其它有關屬性,參數可由調用者根據需要設定。或者想使用一個已經存在的相機(例如演示者自動裝載的相機),可以使用:2.3.1.actor屬性設置Actor代表渲染場景中的實體,通過一個4×4的變換矩陣可對Actor位置、方向以及大小進行設置,還可設置Actor的渲染特性(Property)、引用(例如Mapper)、紋理影射(Texture)等屬性。2.3.1.5分配模式2.3.1.6個特征proto2.3.1.7轉換trans格式2.3.2圖形數據的編碼VTK使用數據流方法把原始信息轉換成圖形數據。在這個方法中有兩個基本對象:數據對象(DataObject)和流程對象(ProcessObject)。2.3.2.tk支持的數據結構VTK的數據對象有很多種數據類型,vtkDataSet類是父類,有嚴格的數據結構。VTK支持的數據類型有:多邊形數據(vtkPolyData)、結構網格(vtkStructureGrid)、非結構網格(vtkUnStructureGrid)、結構點(vtkStructurePoint)、非結構點(vtkUnStructurePoint)。2.3.1.輸出數據的執行●源對象(Source)vtkSource是基類,它指定了源目標的行為和接口。源對象的產生可以有兩種方法:從文件讀入源數據,程序內部產生源數據。當流程處理完畢后,源對象會自動刪除源對象輸出的數據。●過濾器對象(Filter)vtkFilter是基類,是vtkSource的派生類。它接受源數據的輸出數據,在這里需要說明,過濾器的輸出數據類型可能與輸入數據類型不同。●映射對象(Mapper)vtkMapper是基類,接受過濾器的對象輸入的數據并把數據映射成基本圖元。2.3.3可視化應用3重建樹種細胞下面用計算機斷層掃描CT來分析利用VTK實現數據可視化。我們要處理的是人體頭部組織的切片數據,由切片數據重建骨骼表面。采用的算法是基于表面繪制的移動立方體法(MarchingCube)。3.1重建算法的介紹3.2重建過程3.2.1c模式數據的可視化Visualization-Toolkit所支持的一種數據表達形式,然后根據其物理結構建立起相應的模型。我們給C數據建立抽象的等值面模型。最后將物理組件與抽象模型結合起來建立CT數據的可視化,以幫助用戶正確理解數據。我們所要進行處理的是有結構點陣數據,其拓撲和幾何都是隱含的。所以只需要知道數據的維數數據源和數據空間,利用VisualizationToolkit中的vtkVolume-16Reader就可以很方便的讀取切片數據。3.2.3數據透視最終表面繪制的結果如圖5(a)(b)所示。4基于mfc圖形界面的可視化設計方法VTK是一個用于可視化應用程序構造與運行的支撐環境,它是在三維函數庫OpenGL的基礎上采用面向對象設計方法發展起來的。它強大的可視化功能與MFC圖形界面功能相結合可快捷開發出高性能的可視化程序。掌握好VTK對于從事可視化工作的研究者具有十分重要的意義,相信隨著Web和Internet技術的發展,VTK將會有更廣闊的發展前景。2.1vtk的框架模型VTK主要有兩個部分組成:利用C語言編寫的編譯后的核心層(C++類庫)和按照一定規則生成的支持腳本語言的解釋層(包括Java,Tcl/TkvtkInterpretedInterface)。VTK是一個面向對象的可視化系統,它將可視化過程中常用的算法封裝起來,隱藏了具體的細節。用面向對象技術的對象模型圖表示VisualizationToolkit的框架結構,如圖2所示:VTK是使用面向對象技術實現的,包含了大量的對象模型(ObjectModels),根據其繼承關系,可以將對象模型大致劃分為:圖形模型對象(GraphicsModels)和可視化模型對象(VisualizationModels)。圖形模型利用了其它3D圖形系統的一些簡單易于使用的特點,同時也采用了一些目前的GUI德方法,在圖形模型中主要的對象有如下7種。2.3.1.vtk數據流程建模vtkRenderer類和vtkRenderWindow類都是基類,它們結合起來管理圖形和窗口系統之間的接口。vtkRenderWindow類用于在顯示設備上生成一個窗口,可以設置窗口的大小,也可以產生立體顯示效果。支持雙緩存。渲染器(Renderer)對象用于控制目標的渲染過程,它把幾何體,燈光以及攝像機觀察角度轉換成圖像的形式。當生成場景后,要把渲染器加到渲染窗口中去:vtkMapper派生類通過一個向上觀察板(LookupTable)來映射數據和控制圖形庫中基本圖元的生成。vtkLook-upTable是vtkScalarsToColors的子類。一個或多個Actor可以使用同一個Mapper。Mapper有多個參數對其進行控制。VTK中的實現類是vtkProperty。它指定了幾何物體的光照及其它特性。例如:光照特性(泛光,漫反射,鏡面反射,邊緣顏色)、漫反射強度、物體的灰度、物體的表現形式(點、線框、表面)、著色模式等等。Transform是一個4×4變換矩陣的堆棧。有很多對這個矩陣進行操作的方法:平移、縮放和旋轉等。VTK利用了數據流程模型,在這個模型中,各個模塊在網絡中連接起來,利用模塊對數據進行一系列操作。這種模型的特點是適用于不同的數據類型和不同的算法,所以靈活性很強。一般指的是過濾器(Filter),對數據對象進行操作產生新的數據對象。流程對象表示了系統的運算法則,當數據在網絡中流動時對數據進行操作。流程對象可以分為:用VTK進行可視化應用主要包括兩個步驟。2.3.3.1建立合適的目標圖形來演示數據2.3.3.2建立數據流水線(datapipeline)來處理數據,也就是把Source,Filter,Mapper連接起來數據對象和流程對象結合起來產生了可視化流程,如圖3,其中箭頭指向數據流的流向。表面繪制法是將感興趣的部分以等值面的方式抽取出來便于利用真實感技術,通過旋轉和變換光照效果生成高質量的三維圖像,并可對其觀察和分析。這種繪制方法速度快,適合于實時性要求高的情形,如交互操作、圖像引導手術等。它適合于繪制表面特征分明的組織和器官(例如由CT數據生成骨骼三維圖像)。在表面繪制算法中較為常用的是MC法(Ma-rchingCube)。其算法是在數據體中將位于兩個相鄰切片上的8個相鄰的體素構成一個立方體,然后逐個處理數據場中的立方體,分類出與等值面相交的立方體,采用插值計算出等值面與立方體邊的交點,根據立方體每一頂點與等值面的相對位置將等值面與立方體邊的交點按一定方式連接生成等值面,從而作為等值面在該立方體內的一個逼近表示。根據圖4可以看出利用VTK進行表面繪制的流程如下。3.2.2繪制窗口的建立首先利用vtkM-archingCubes類來提取出某一C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 虛擬動物保護社群考核試卷
- 綠色建筑能耗監測與優化服務合同
- 跨界合作網絡直播流量分成及版權保護合同
- 電動汽車電池更換系統租賃與維護服務協議
- 智能大田作物生長態勢監測系統租賃及數據服務協議
- 綠色環保建材家居經銷區域獨家代理協議
- 2025年中國銨明礬行業市場前景預測及投資價值評估分析報告
- 海外新能源項目專用無人機租賃與管理服務協議
- 補課班班組協議書
- 通知書沒簽就業協議書
- 2025湖北水發集團園招聘40人筆試參考題庫附帶答案詳解
- 2025年武漢鐵路局招聘筆試參考題庫含答案解析
- 心臟彩超解讀完整版課件
- 門窗安裝質量驗收標準
- 醫療耗材配送服務方案
- 社會心理學第六講愛情課件
- 創業者與創業團隊課件
- 滾筒冷渣機技術協議
- JB-ZQ 4763-2006 膨脹螺栓規格及性能
- Q∕GDW 10799.6-2018 國家電網有限公司電力安全工作規程 第6部分:光伏電站部分
- 國家開放大學《行政組織學》章節測試參考答案
評論
0/150
提交評論