我的手中有几个用于不同骨骼的DICOM堆栈,我想对整个手进行3D渲染。到目前为止,我只能渲染一根骨头。
我正在使用python vtk和vtkplotter库。
到目前为止,我已经尝试为每个DICOM图像创建一个vtkImageData对象,并使用vtkImageAppend.AddInputData()将它们全部馈入vtkImageAppend对象。
代码是我用来附加所有图像的函数,这些图像作为称为vtkList的列表传递给函数。
var p = document.createElement("p");
var node = document.createTextNode("This is new");
p.appendChild(node);
var parent = document.body;
parent.appendChild(p);
CombineVTKs()函数的输出是一个'(vtkCommonDataModelPython.vtkImageData)'对象,但是当我尝试创建一个vtkplotter.Volume()对象并显示它时,一切都崩溃了,这让我非常难过。这是代码和以下错误:
def CombineVTKs(vtkList):
"Returns a Single VTKImageData given a list of individual ones"
a = vtk.vtkImageAppend()
a.SetAppendAxis(2)
for l in vtkList:
a.AddInputData(l)
return a.GetOutput()
产生的错误是:
a = CombineVTKs(myVtkList)
vol = vtkplotter.Volume(a)
vtkplotter.show(vol, bg='white')
有人使用过vtk && / || vtkplotter做类似的事情,还是有人建议另一种方法来完成此工作?