vtk序列切片影象實現翻轉的兩種方法
阿新 • • 發佈:2019-02-08
由於vtk、itk顯示影象時y軸相反,需要做一次翻轉,這裡介紹兩種方法對於序列影象實現翻轉。
1)vtkImageFlip類
vtkSmartPointer<vtkImageFlip>flip = vtkSmartPointer<vtkImageFlip>::New();
flip->SetInputData(itkTovtkImageFilter->GetOutput());
flip->SetFilteredAxis(1);//y軸為1,x軸為0,z軸為2;
flip->Update();
2)通過vtkImageReslice 中的SetResliceTransform函式,實現對體資料的變化;
vtkSmartPointer<vtkTransform>VolTrans = vtkSmartPointer<vtkTransform>::New();
VolTrans->RotateY(180);
VolTrans->Translate(-2 * center[0], 0, -2 * center[2]);
reslice->SetAutoCropOutput(1);
reslice->Update();
vtkSmartPointer<vtkImageReslice>reslice= vtkSmartPointer<vtkImageReslice>::New();
reslice->SetInputData(itkTovtkImageFilter->GetOutput());
reslice->SetResliceTransform(VolTrans);
。。。。。。。
這兩種的不同:
vtkImageReslice中的SetResliceTransform:設定簡單,記憶體佔用少很多,特別是序列影象的數量大的時候,只能用這個方法; | good |
vtkImageFlip:定義簡單,執行時佔用記憶體大,圖片較多時,無法執行 | , |