【转】VTK修炼之道1_初识VTK
生活随笔
收集整理的這篇文章主要介紹了
【转】VTK修炼之道1_初识VTK
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.VTK是什么?
Visualization ToolKit
3D計算機圖形學、圖象處理及可視化工具包
?
VTK使用C++、面向對象技術開發;基于OpenGL,封裝了OpenGL中的功能,屏蔽細節、便于交互、易于使用提供多種語言接口C++ 、Java 、Tcl、?Python 等;可在Windows 98/NT, SGI, Linux, ?Sun, HP等系統編譯運行;最重要的一點是:開源(Open Source)。
典型應用一:體繪制
? ? ??
典型應用二:面繪制
???
典型應用三:矢量場的可視化
2.VTK的使用流程
VTK ?流水線機制
Visualization Model:generation geometry
Graphics Model:rendering
一般可視化流程可以詳細表述為:
繪圖過程(?Graphics Model?):目的是將圖形原語在屏幕上顯示。
下面舉一個典型的例子來理解Actor:
?
用偽代碼來表征這個過程為:
Main() { create a window; create a renderer; give the rendererto the window;create procedural geometry; create a mapper; give the geometryto the mapper; create an actor; give the mapper to the actor; give the actor to the renderer; window->render(); } 即:Windows->Render->Actor->Mapper->Geometry3.VTK的開發流程
4.一個比較震撼的實例
//得到圖像文件 vtkDICOMImageReader *Reader = vtkDICOMReader::New(); Reader ->SetDirectoryName(""); Reader ->Update(); //MC vtkMarchingCubes *m_MC = vtkMarchingCubes::New(); m_MC ->SetInput(Reader->GetOutput()); m_MC ->SetValue(0, 200); //獲得皮膚幾何數據的屬性 vtkPolyDataMapper *Mapper= vtkPolyDataMapper::New(); Mapper-SetInput(m_MC ->GetOutput()); //顯示 vtkActor *m_actor = vtkActor::New(); m_actor->SetMapper(m_isoMapper); //皮膚顏色 m_actor->GetProperty()->SetDiffuseColor(0, .49, .25); //設置反射率 m_actor->GetProperty()->SetSpecular(0.3); //設置反射光強 m_actor->GetProperty()->SetSpecularPower(20); //不透明度 m_actor->GetProperty()->SetOpacity(1); //繪制 vtkRenderer *m_renderer = vtkRenderer::New(); m_renderer ->AddActor(m_actor); m_renderer ->SetBackground(0.2,0.5,0.3);vtkWin32OpenGLRenderWindow *m_renWin = vtkWin32OpenGLRenderWindow::New(); m_renWin-> AddRenderer(m_renderer); m_renWin-> Render();vtkRenderWindowInteractor *m_iren = vtkRenderWindowInteractor::New(); m_iren->SetRenderWindow(m_renWin);?
VTK主要工作流程符合流水線機制,永恒不變,但使用起來要靈活應用其中的一些類,不要單純的拘泥于最基本的流水線,其實有些類充當一個角色,有些類可以連續承擔多個角色。5.VTK在圖像處理、虛擬現實、計算機圖形學中的應用
圖像處理:
? ? ? ?
虛擬現實:
? ? ??
計算機圖形:
? ? ? ?
總結
以上是生活随笔為你收集整理的【转】VTK修炼之道1_初识VTK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】03.Dicom 学习笔记-DIC
- 下一篇: 【转】关于DCMTK中像素存储以及get