我已经看到vtkplotter支持多种体积图像格式,但是它支持绘制numpy数组吗?我有一个.mhd格式的图像,我将其转换为.npz文件,并希望使用上述库进行绘制。有办法吗?
import numpy as np
data = np.zeros((3,3,3))
# how to plot this?
如果您知道适用于医学分析的其他可视化体积数据的工具,请告知。我尝试过mayavi,但它消耗了太多内存,导致计算机崩溃。
最佳答案
您可以使用numpy_support将numpy数组转换为vtkImageData(即VTK 3D图像)。
下面是一个示例,关于类型转换有一些警告:我认为这无关紧要,但我不是python专家...
from vtk.util import numpy_support
import vtk
import numpy as np
data = np.zeros((3,3,3))
# vtkImageData is the vtk image volume type
imdata = vtk.vtkImageData()
# this is where the conversion happens
depthArray = numpy_support.numpy_to_vtk(data.ravel(), deep=True, array_type=vtk.VTK_DOUBLE)
# fill the vtk image data object
imdata.SetDimensions(data.shape)
imdata.SetSpacing([1,1,1])
imdata.SetOrigin([0,0,0])
imdata.GetPointData().SetScalars(depthArray)
# f.ex. save it as mhd file
writer = vtk.vtkMetaImageWriter()
writer.SetFileName("test.mhd")
writer.SetInputData(imdata)
writer.Write()
...并可视化vtk体积数据,可以使用Paraview。
关于python - 绘制由3D numpy数组表示的3d体积数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55703602/