vtk

vtk

Vtk,(visualization toolkit)是一個開源的免費軟體系統,主要用於三維計算機圖形學、圖像處理和可視化。Vtk是在面向對象原理的基礎上設計和實現的,它的內核是用C++構建的,包含有大約250,000行代碼,2000多個類,還包含有幾個轉換界面,因此也可以自由的通過Java,Tcl/T徠k和Python各種語言使用vtk。

簡介


Vtk幾乎可以在任何一個基於Unix的平台上操作,以及Windows 95/98/NT/2000/XP。
視覺化工具函式庫(VTK,Visualization Toolkit)是一個開放源碼,跨平台、支持并行處理(VTK曾用於處理大小近乎1個Petabyte的資料,其平台為美國Los Alamos國家實驗室所有的具1024個處理器之大型系統)的圖形應用函式庫。2005年時曾被美國陸軍研究實驗室用於即時模擬俄羅斯制反導彈戰車ZSU23-4受到平面波攻擊的情形,其計算節點高達2.5兆之多。

特點


它以用戶使用的方便性和靈活性為主要原則,具有如下的特點:
1) 具有強大的三維圖形功能。Visualization Toolkit 既支持基於體素Voxel-basedrendering 的體繪製Volume Rendering又保留了傳統的面繪製,從而在極大的改善可視化效果的同時又可以充分利用現有的圖形庫和圖形硬體
2) Visualization Toolkit 的體系結構使其具有非常好的流streaming和高速緩存caching 的能力,在處理大量的數據時不必考慮內存資源的限制
3) Visualization Toolkit 能夠更好的支持基於網路的工具比如Java 和VRML 隨著Web 和Internet 技術的發展VisualizationToolkit 有著很好的發展前景
4) 能夠支持多種著色如OpenGL 等
5) Visualization Toolkit 具有設備無關性使其代碼具有良好的可移植性
6) Visualization Toolkit 中定義了許多宏,這些宏極大的簡化了編程工作並且加強了一致的對象行為
7) Visualization Toolkit 具有更豐富的數據類型,支持對多種數據類型進行處理
8) 既可以工作於Windows 操作系統又可以工作於Unix 操作系統極大的方便了用戶。

歷史


VTK最早是作為Prentice Hall出版的"The Visualization Toolkit: An Object-Oriented Approach to 3DGraphics"一書的附件釋出,該書及其軟體是由GE研發部 Corporate R&D的三位研究人員:Will Schroeder、Ken Martin與Bill Lorensen用其閑暇時間合作,在獲得GE公司的許可下完成的(故該軟體的授權完全是由這三位決定),由於其開放源碼式的授權,該書一上市后,VTK 很快地建立了其使用及開發者社群,同時,GE與其他數間公司也開始提供對VTK的支援。 Will Schroeder和Ken Martin在1998年時離開GE,創立了Kitware公司。
有了Kitware的資金挹注,VTK社群快速地成長,其在學術研究及商業應用的領域受到重用,例如Slicer 生物醫學計算軟體使用VTK作為其核心,許多討論研究VTK的IEEE論文出現。VTK也是許多大型研究機構如Sandia, Los Alamosn及Livermore國家實驗室與Kitware的合作基礎。這些研究中心使用VTK來作為視覺化資料的基礎處理工具。 VTK亦是新創的美國國家衛生研究院所規劃,作為開發未來計算工具之基石的美國國家醫學影像計算合作聯盟(National Alliance for Medical Image Computing, NA-MIC)的關鍵計算工具。

應用


VTK是一個開放源碼、自由獲取的軟體系統,全世界的數以千計的研究人員和開發人員用它來進行3D計算機圖形,圖像處理,可視化。VTK包含一個c++類庫,眾多的翻譯介面層,包括Tcl/Tk,Java,Python。 Visualization Toolkit 是一個用於可視化應用程序構造與運行的支撐環境,它是在三維函數庫OpenGL 的基礎上採用面向對象的設計方法發展起來的,它將我們在可視化開發過程中會經常遇到的細節屏蔽起來,並將一些常用的演演算法封裝起來。比如 Visualization Toolkit 將我們在表面重建中比較常見的MarchingCubes 演演算法封裝起來,以類的形式給我們以支持,這樣我們在對三維規則點陣數據進行表面重建時就不必再重複編寫MarchingCubes 演演算法的代碼,而直接使用Visualization Toolkit 中已經提供的vtkMarchingCubes 類。 Visualization Toolkit 是給從事可視化應用程序開發工作的研究人員提供直接的技術支持的一個強大的可視化開發工具。

應用領域


通徠過VTK將科學實驗數據如建築學、氣象學、醫學、生物學或者航空航天學,對體、面、光源等等的逼真渲染,從而幫助人們理解那些採取錯綜複雜而又往往規模龐大的數字呈現形式的科學概念或結果。美國計算機科學家布魯斯·麥考梅克在其1987年關於科學可視化的定義之中,首次闡述了科學可視化的目標和範圍:“利用計算機圖形學來創建視覺圖像,幫助人們理解科學技術概念或結果的那些錯綜複雜而又往往規模龐大的數字錶現形式”。
核醫學成像:心臟SPECT圖像(短軸視圖)與心臟三維模型的融合
上圖中,將儀器採集的實驗數據通過計算機模擬成像,有助於發現醫學問題。在航空航天方面,模擬飛行器軌道實驗、風洞實驗等,通過計算機模擬減少實際實驗次數,可以降低成本,並可以多次實驗找出問題。

獲得


由於vtk是開源的,我們可以從其官網獲得最新版本,最新版本為8.0.1。當然如果是初學的話也可以用以前的版本,視自己的電腦的配置來下載相應的版本進行安裝。