itk、vtk、qt 顯示dicom 數據

以下代碼實現了itk讀取dicom數據,轉換爲vtkData,然後用Qt顯示。

1、Qt Designer 搭建界面,QVTKOpenGLNativeWidget 是vtk的一個類,連接qt與vtk的橋樑,一個可以顯示dicom數據的widget,可以當做一個普通的widget去佈局。但是爲vtk 與qt 的版本都比較高,注意一下。

2、因爲使用itk較多,直接用itk讀的dicom數據,然後使用 itk::ImageToVTKImageFilter轉成vtkData,便於顯示。

3、QVTKOpenGLNativeWidget 顯示 dicom數據,主代碼如下:


vtkSmartPointer<vtkImageViewer2> imageViewer = vtkSmartPointer<vtkImageViewer2>::New();

imageViewer->SetInputData(connector->GetOutput());
imageViewer->SetRenderWindow(ui.qvtk_2->renderWindow()); //ui.qvtk_2 爲QVTKOpenGLNativeWidget 
imageViewer->SetSliceOrientationToXY();
imageViewer->SetSlice();//設置初始顯示的切面Index
imageViewer->SetColorLevel(40);//窗寬窗位
imageViewer->SetColorWindow(40);

vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor= vtkSmartPointer<vtkRenderWindowInteractor>::New();
	
	
vtkSmartPointer<myVtkInteractorStyleImage> myInteractorStyle = vtkSmartPointer<myVtkInteractorStyleImage>::New();

myInteractorStyle->SetImageViewer(imageViewer);
	
imageViewer->SetupInteractor(renderWindowInteractor);
	
renderWindowInteractor->SetInteractorStyle(myInteractorStyle);
	

imageViewer->GetRenderer()->SetBackground(0.0, 0.0, 0.0);
imageViewer->Render();
imageViewer->GetRenderer()->ResetCamera();
imageViewer->Render();

renderWindowInteractor->Initialize();

renderWindowInteractor->Start();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章