此函式庫包含各式各樣的視覺化演算法,例如: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 網站上可以找到更多範例。
沒有留言:
張貼留言