Python 打印由三维numpy阵列表示的三维体积数据

Python 打印由三维numpy阵列表示的三维体积数据,python,vtk,mayavi,Python,Vtk,Mayavi,我已经看到vtkplotter支持多种体积图像格式,但它是否支持打印numpy阵列?我有一个.mhd格式的图像,我将其转换为.npz文件,并希望使用所提到的库来打印它。有没有办法做到这一点 import numpy as np data = np.zeros((3,3,3)) # how to plot this? 如果您知道任何其他适合医学分析的可视化体积数据工具,请告知。我尝试过mayavi,但它占用了太多内存,导致我的计算机崩溃。您可以使用numpy\u支持将numpy数组转换为vtkI

我已经看到vtkplotter支持多种体积图像格式,但它是否支持打印numpy阵列?我有一个.mhd格式的图像,我将其转换为.npz文件,并希望使用所提到的库来打印它。有没有办法做到这一点

import numpy as np
data = np.zeros((3,3,3))
# how to plot this?

如果您知道任何其他适合医学分析的可视化体积数据工具,请告知。我尝试过mayavi,但它占用了太多内存,导致我的计算机崩溃。

您可以使用numpy\u支持将numpy数组转换为vtkImageData(即VTK 3D图像)

下面是一个例子,关于类型转换有一个numpy警告:我认为这不相关,但我不是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。

您应该检查以更好地掌握适合您的绘图类型。特别是,同时使用iso曲面和剖切面。您能否提供崩溃的mayavi片段?