Vtk,(visualizationtoolkit)是一個開源的免費軟件系統,主要用于三維計算機圖形學、圖像處理和可視化。Vtk是在面向對象原理的基礎上設計和實現的,它的內核是用C++構建的,包含有大約250,000行代碼,2000多個類,還包含有幾個轉換界面,因此也可以自由的通過Java,Tcl/Tk和Python各種語言使用vtk。
簡介
Vtk幾乎可以在任何一個基于Unix的平臺上操作,以及Windows95/98/NT/2000/XP。
視覺化工具函式庫(VTK,VisualizationToolkit)是一個開放源碼,跨平臺、支持并行處理(VTK曾用于處理大小近乎1個Petabyte的資料,其平臺為美國LosAlamos國家實驗室所有的具1024個處理器之大型系統)的圖形應用函式庫。2005年時曾被美國陸軍研究實驗室用于即時模擬俄羅斯制反導彈戰車ZSU23-4受到平面波攻擊的情形,其計算節點高達2.5兆之多。
特點
它以用戶使用的方便性和靈活性為主要原則,具有如下的特點:
(1)具有強大的三維圖形功能。VisualizationToolkit既支持基于體素Voxel-basedrendering的體繪制VolumeRendering又保留了傳統的面繪制,從而在極大的改善可視化效果的同時又可以充分利用現有的圖形庫和圖形硬件
(2)VisualizationToolkit的體系結構使其具有非常好的流streaming和高速緩存caching的能力,在處理大量的數據時不必考慮內存資源的限制
(3)VisualizationToolkit能夠更好的支持基于網絡的工具比如Java和VRML隨著Web和Internet技術的發展VisualizationToolkit有著很好的發展前景
(4)能夠支持多種著色如OpenGL等
(5)VisualizationToolkit具有設備無關性使其代碼具有良好的可移植性
6)VisualizationToolkit中定義了許多宏,這些宏極大的簡化了編程工作并且加強了一致的對象行為
(7)VisualizationToolkit具有更豐富的數據類型,支持對多種數據類型進行處理
(8)既可以工作于Windows操作系統又可以工作于unix操作系統極大的方便了用戶。
歷史
VTK最早是作為PrenticeHall出版的"TheVisualizationToolkit:AnObject-OrientedApproachto3DGraphics"一書的附件釋出,該書及其軟件是由GE研發部CorporateR&D的三位研究人員:WillSchroeder、KenMartin與BillLorensen用其閑暇時間合作,在獲得通用電氣的許可下完成的(故該軟件的授權完全是由這三位決定),由于其開放源碼式的授權,該書一上市后,VTK很快地建立了其使用及開發者社群,同時,GE與其他數間公司也開始提供對VTK的支援。WillSchroeder和KenMartin在1998年時離開GE,創立了Kitware公司。
有了Kitware的資金挹注,VTK社群快速地成長,其在學術研究及商業應用的領域受到重用,例如Slicer生物醫學計算軟件使用VTK作為其核心,許多討論研究VTK的IEEE論文出現。VTK也是許多大型研究機構如Sandia,LosAlamosn及Livermore國家實驗室與Kitware的合作基礎。這些研究中心使用VTK來作為視覺化資料的基礎處理工具。VTK亦是新創的美國國家衛生研究院所規劃,作為開發未來計算工具之基石的美國國家醫學影像計算合作聯盟(NationalAllianceforMedicalImageComputing,NA-MIC)的關鍵計算工具。
應用
VTK是一個開放源碼、自由獲取的軟件系統,全世界的數以千計的研究人員和開發人員用它來進行3D計算機圖形,圖像處理,可視化。VTK包含一個C++類庫,眾多的翻譯接口層,包括TCL科技/Tk,Java,Python。VisualizationToolkit是一個用于可視化應用程序構造與運行的支撐環境,它是在三維函數庫OpenGL的基礎上采用面向對象的設計方法發展起來的,它將我們在可視化開發過程中會經常遇到的細節屏蔽起來,并將一些常用的算法封裝起來。比如VisualizationToolkit將我們在表面重建中比較常見的MarchingCubes算法封裝起來,以類的形式給我們以支持,這樣我們在對三維規則點陣數據進行表面重建時就不必再重復編寫MarchingCubes算法的代碼,而直接使用VisualizationToolkit中已經提供的vtkMarchingCubes類。VisualizationToolkit是給從事可視化應用程序開發工作的研究人員提供直接的技術支持的一個強大的可視化開發工具。
應用領域
通過VTK將科學實驗數據如建筑學、氣象學、醫學、生物學或者航空航天學,對體、面、光源等等的逼真渲染,從而幫助人們理解那些采取錯綜復雜而又往往規模龐大的數字呈現形式的科學概念或結果。美國計算機科學家布魯斯·麥考梅克在其1987年關于科學可視化的定義之中,首次闡述了科學可視化的目標和范圍:“利用計算機圖形學來創建視覺圖像,幫助人們理解科學技術概念或結果的那些錯綜復雜而又往往規模龐大的數字表現形式”。
核醫學成像:心臟SPECT圖像(短軸視圖)與心臟三維模型的融合
上圖中,將儀器采集的實驗數據通過計算機模擬成像,有助于發現醫學問題。在航空航天方面,模擬飛行器軌道實驗、風洞實驗等,通過計算機模擬減少實際實驗次數,可以降低成本,并可以多次實驗找出問題。
獲得
vtk為開源軟件,可以從其官網獲得最新版本,最新版本為9.0.3。同時,官網也提供了歷史版本的下載。
vtk的安裝與配置需使用Kitware公司的Cmake工具。
案例教程可從官網獲取。
許可證
VTK是一個在BSD許可證下許可的開源工具包。
版權所有(c)1993-2008KenMartin、WillSchroeder、BillLorensen
保留所有權利。
如果滿足以下條件,則允許以源代碼和二進制形式重新分發和使用,無論是否修改:
本軟件由版權所有者和貢獻者“按原樣”提供,并提供任何明示或暗示的保證,包括但不限于適銷性和針對特定用途的適用性的暗示保證。在任何情況下,作者或貢獻者均不對任何直接、間接、附帶、特殊、懲戒性或后果性損害(包括但不限于采購替代品或服務、利潤或數據;業務中斷),無論是基于任何責任理論,無論是合同、嚴格責任或侵權行為(包括疏忽或其他原因)因使用本軟件而以任何方式引起的,即使是出于自愿的考慮。
參考資料 >
計算機圖形學平臺VTK.開源社區網.2021-11-11