使用 VTK 處理影像時,時常會需要將影像資料以視覺化的方式呈現,但在記憶體無法容納全部的影像時,若直接繪製原始的影像,會對效能造成很大的影響,甚至無法將影像正確的繪製到螢幕上。
這裡介紹一些在 VTK 中用來繪製大型影像的技巧,以下是一些處理大型影像時可以增加繪圖速度的方式。
降低影像資料解析度(Resample):
- vtkImageResample
- vtkImageShrink3D(可參考 VTK 官方網站 vtkImageShrink3D 範例)
只顯示部份影像資料(Extract Region of Interest):
- vtkImageThreshold(可參考 VTK 官方網站 vtkImageThreshold 範例)
- vtkExtractVOI(可參考 VTK 官方網站 vtkExtractVOI 範例)
- vtkImageReslice(可參考 VTK 官方網站 vtkImageReslice 範例)
在繪圖時使用較快速的繪圖方式,例如以 Texture Mapping(vtkVolumeTextureMapper2D)代替
Raycasting(vtkVolumeRayCastMapper)。
降低繪圖演算法的精確度:
vtkVolumeTextureMapper2D->SetMaximumNumberOfPlanes( 20 ); vtkVolumeRayCastMapper->SetImageSampleDistance( 2.0 );