1 定义
参考资料[1][2][3]都指出,窗技术是CT检查中用以观察不同密度的正常组织或病变的一种显示技术,包括窗宽(window width)和窗位(window level)。由于各种组织结构或病变具有不同的CT值,因此欲显示某一组织结构细节时,应选择适合观察该组织或病变的窗宽和窗位,以获得最佳显示。
1.1 窗宽
窗宽是CT图像上显示的CT值范围,在此CT值范围内的组织和病变均以不同的模拟灰度显示,而CT值高于此范围的组织和病变,无论高出程度有多少,均以白影显示,不再有灰度差异;反之,低于此范围的组织结构,不论低的程度有多少,均以黑影显示,也无灰度差别。
1.2 窗位
窗位是窗的中心位置,同样的窗宽,由于窗位不同,其所包括CT值范围的CT值也有差异。
2 实现代码
参考资料[2]中给出了相关代码,这里略去。
3 VTK中的实现
3.1 vtkImagePlaneWidget
在VTK中,可以直接设置窗位的类是vtkImagePlaneWidget,但这主要用于虚拟切片中。对于普通的图像,可按照3.2或者3.3的方法来实现。
3.2 vtkImageMapToWindowLevelColors
但是如果使用vtkImageReader读取图像,然后通过vtkImageActor来显示,则需要借助vtkImageMapToWindowLevelColors类来实现窗宽窗位的设置,详见vtkImageMapToWindowLevelColors的测试案例TestMapToWindowLevelColors.py。
3.3 vtkInteractorStyleImage
3.2是通过用于自己设定窗宽窗位来实现不同的观测效果的。此外,还可以通过改变Ineractor的style来达到这个目的,例如:
vtkSmartPointer< vtkInteractorStyleImage > interactorStyleImage = vtkSmartPointer< vtkInteractorStyleImage >::New(); ui->qvtkWidget->GetInteractor()->SetInteractorStyle( interactorStyleImage );这时,使用鼠标和通过qvtkWidget显示的图像进行交互时,按住左键拖动鼠标即可实现窗位窗宽的调整。这是 最适合于观测图像的交互风格。
实例可见ImageTracerWidget.py。
参考资料
[1]CT的窗宽和窗位
[2]窗宽窗位与其处理方法
[3]窗宽窗位是怎么回事
[4]窗宽、窗位
[5]窗宽、窗位对CT图像的影响
[6]窗位_百度百科
[7]window/level concept
[8]TK读取CT DICOM,如何设置窗位和窗宽?