VTK 实例14:读取DCM医学图像并显示
1 #include "vtkAutoInit.h"
2 VTK_MODULE_INIT(vtkRenderingOpenGL2);
3 VTK_MODULE_INIT(vtkInteractionStyle);
4
5 #include <vtkDICOMImageReader.h>//DCM医学文件读取类
6 #include <vtkImageViewer.h>//显示2D图像类
7 #include <vtkRenderWindowInteractor.h>//交互器类
8
9 int main()
10 {
11 int dim[2];
12 //实例化一个对象dcmReader
13 vtkDICOMImageReader* dcmReader = vtkDICOMImageReader::New();
14 dcmReader->SetFileName("C:\\Users\\Administrator\\Desktop\\VTK2\\hellovtk\\CT\\123.dcm");//读单张切片
15 //reader->SetDirectoryName("C:\\Users\\Administrator\\Desktop\\VTK2\\hellovtk\\CT_all");//读序列切片
16
17 //实例化一个对象dcmViewer
18 vtkImageViewer* dcmViewer = vtkImageViewer::New();
19 dcmViewer->SetInputConnection(dcmReader->GetOutputPort());//读取的图像数据输出给显示对象输入
20 //dcmViewer->SetColorLevel(400);//设置窗位
21 //dcmViewer->SetColorWindow(800);//设置窗宽
22 dim[0] = dcmViewer->GetColorLevel();//显示窗位1000
23 dim[1] = dcmViewer->GetColorWindow();//显示窗宽2000
24 printf("%d %d", dim[0], dim[1]);
25
26 dcmViewer->Render();//显示图像
27
28 //加入交互机制
29 //实例化一个交互器对象interactor
30 vtkRenderWindowInteractor* interactor = vtkRenderWindowInteractor::New();
31 dcmViewer->SetupInteractor(interactor);
32 interactor->Initialize();
33 interactor->Start();//使交互器处于等待状态
34
35 /*getchar();*/
36 //释放内存
37 dcmReader->Delete();
38 dcmViewer->Delete();
39 interactor->Delete();
40
41 return 0;
42
43 }
鼠标左键按住不放,上下移动调整窗位,左右移动调整窗宽
默认窗位1000,窗宽2000