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();

 

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