VTK 視覺化工具函式庫(The Visualization ToolKit)是一個開放原始碼的物件導向軟體系統,由 Kitware 公司贊助開發,主要用於 3D 電腦繪圖、影像處理與視覺化運算等,VTK 內部是以 C++ 語言撰寫而成的,提供了各種語言的函式庫,例如:C++、Python、Tcl/Tk 與 Java。
此函式庫包含各式各樣的視覺化演算法,例如:scalar、 vector、 tensor、 texture 與 volumetric methods,另外也支援各種 modeling,例如:implicit modeling、 polygon reduction、 mesh smoothing、 cutting、 contouring 與 Delaunay triangulation 等,除此之外還有數百種 2D 與 3D 的影像演算法。
VTK 在醫學影像處理的領域中被廣泛的使用,以下是使用 VTK 函式庫撰寫而成的軟體:
以下是使用 VTK所繪製出來的圖形,由這些圖形大致上就可以看出來其主要的功能為何:
下面是一個簡單範例的 C++ 程式碼,畫出一個簡單的圓錐體:
#include <vtkConeSource.h> #include <vtkPolyData.h> #include <vtkSmartPointer.h> #include <vtkPolyDataMapper.h> #include <vtkActor.h> #include <vtkRenderWindow.h> #include <vtkRenderer.h> #include <vtkRenderWindowInteractor.h> int main(int, char *[]) { //Create a cone vtkSmartPointer<vtkConeSource> coneSource = vtkSmartPointer<vtkConeSource>::New(); coneSource->Update(); //Create a mapper and actor vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New(); mapper->SetInputConnection(coneSource->GetOutputPort()); vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New(); actor->SetMapper(mapper); //Create a renderer, render window, and interactor vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); renderWindowInteractor->SetRenderWindow(renderWindow); //Add the actors to the scene renderer->AddActor(actor); renderer->SetBackground(.3, .2, .1); // Background color dark red //Render and interact renderWindow->Render(); renderWindowInteractor->Start(); return EXIT_SUCCESS; }
其繪出的圖形為
在 VTK 官方的 Wiki 網站上可以找到更多範例。