VTK 实例14:读取DCM医学图像并显示

发布时间 2023-08-14 15:15:58作者: 一杯清酒邀明月

 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