VTK 实例11:读取BMP图像并显示
窗宽(Window Width):表示所显示信号强度值的范围(CT图像上所包含的CT值范围)
窗位(Window Level):又称窗水平。窗位是指窗宽上下限的平均数(窗位的高低影响图像的亮度)
例如:窗宽为300H,当窗位是0H时,其CT值范围为-150H~0H~+150H;如窗位是+40H时,则CT值范围为
-110H~+40H~+190H。通常欲观察某一组织的结构及发生的病变,应以该组织的CT值为窗位。
1 #include "vtkAutoInit.h"
2 VTK_MODULE_INIT(vtkRenderingOpenGL2);
3 VTK_MODULE_INIT(vtkInteractionStyle);
4
5 #include <vtkBMPReader.h>//BMP读取类
6 #include <vtkImageViewer.h>//显示2D图像类
7 #include <vtkRenderWindowInteractor.h>//交互器类
8
9 int main()
10 {
11 //实例化一个对象bmpReader
12 vtkBMPReader* bmpReader = vtkBMPReader::New();
13 bmpReader->SetFileName("1234.bmp");//读取图片
14
15 //实例化一个对象bmpViewer
16 vtkImageViewer* bmpViewer = vtkImageViewer::New();
17 bmpViewer->SetInputConnection(bmpReader->GetOutputPort());//读取的图像数据输出给显示对象输入
18 bmpViewer->SetColorLevel(128);//设置窗位
19 bmpViewer->SetColorWindow(256);//设置窗宽
20 bmpViewer->Render();//显示图像
21
22 //加入交互机制
23 //实例化一个交互器对象interactor
24 vtkRenderWindowInteractor* interactor = vtkRenderWindowInteractor::New();
25 bmpViewer->SetupInteractor(interactor);
26 interactor->Initialize();
27 interactor->Start();//使交互器处于等待状态
28
29 //getchar();
30 //释放内存
31 bmpReader->Delete();
32 bmpViewer->Delete();
33 interactor->Delete();
34
35 return 0;
36
37 }