SimpleITK+mayavi实现医学图像的三维重建
需要的库有simpleitk,mayavi和tvtk
代码如下
1.导入函数
import SimpleITK as sitk
from mayavi import mlab
from tvtk.util.ctf import ColorTransferFunction,PiecewiseFunction
2.导入数据
'导入mha数据'
path = 'H:\\CT34328912002\\mha\\A.mha' #path为文件的路径
image = sitk.ReadImage(path) #利用sampleItk读入mha数据,读入办法不唯一
image = sitk.GetArrayFromImage(image) #获得图像的数组形式的数据,需要注意顺序
3.进行体数据的渲染
'进行体数据的绘制,渲染'
#mlab.contour3d(image) #显示表面
vol = mlab.pipeline.volume(mlab.pipeline.scalar_field(image), name='3-d ultrasound ')
'ctf.add_rgb_point()第一个数值为阈值,之后的分别为RGB三个色彩的RGB值'
ctf = ColorTransferFunction() # 该函数决定体绘制的颜色、灰度等
ctf.add_rgb_point(-50, 0, 0, 1)
ctf.add_rgb_point(100, 0.5, 0, 0.5)
ctf.add_rgb_point(50, 0, 0.5, 0)
ctf.add_rgb_point(150, 0, 0, 0.5)
ctf.add_rgb_point(250, 0.8, 0, 0)
vol._volume_property.set_color(ctf) #进行更改,体绘制的colormap及color
vol._ctf = ctf
vol.update_ctf = True
'改变整体图像的不透明度'
otf = PiecewiseFunction()
otf.add_point(20,0.5)
vol._otf = otf
vol._volume_property.set_scalar_opacity(otf)
ctf.range = [0, 1]
mlab.show()
4.得到的图片