#参照VTK自带的例程 Examples/GUI/Python/VolumeRenderWithBoxWidget.py
#从
http://www.vtk.org/doc/nightly/html/ 或者 手册中参考 vtkDICOMImageReader,vtkImageShi
ftScale等类的使用方法,修改例程文件如下:
#由于 volumeMapper 之能接受无符号数 unsigned short 或者 unsigned char,所以必须加以转换。这里使用vtkImageShiftScale
#由于 volumeMapper 之能接受无符号数 unsigned short 或者 unsigned char,所以必须加以转换。这里使用vtkImageShift
#
!/usr/bin/env python
# Demonstrate how to use the vtkBoxWidget to control volume rendering
# within the interior of the widget.
import vtk
from vtk.util.misc import vtkGetDataRoot
VTK_DATA_ROOT = vtkGetDataRoot()
dicomReader = vtk.vtkDICOMImageReader()
dicomReader.SetDirectoryName( ' .../DICOM/PATH... ' )
dicomReader.Update()
dataSpacing = dicomReader.GetDataSpacing()
# 由于volumeMapper之能接收无符号数,所以必须加以转换
srange = dicomReader.GetOutput().GetScalarRange()
min = srange[0]
max = srange[ 1 ]
diff = max - min
slope = 40000 / diff
inter = - slope * min
shift = inter / slope
# Demonstrate how to use the vtkBoxWidget to control volume rendering
# within the interior of the widget.
import vtk
from vtk.util.misc import vtkGetDataRoot
VTK_DATA_ROOT = vtkGetDataRoot()
dicomReader = vtk.vtkDICOMImageReader()
dicomReader.SetDirectoryName( ' .../DICOM/PATH... ' )
dicomReader.Update()
dataSpacing = dicomReader.GetDataSpacing()
# 由于volumeMapper之能接收无符号数,所以必须加以转换
srange = dicomReader.GetOutput().GetScalarRange()
min = srange[0]
max = srange[ 1 ]
diff = max - min
slope = 40000 / diff
inter = - slope * min
shift = inter / slope