python - vtkImageAppend 似乎没有产生有效的 vtkImageData
问题描述
我有几个 DICOM 堆栈用于一只手的不同骨骼,我想 3-D 渲染整个手。到目前为止,我只能得到一个骨头来渲染。
我正在使用 python vtk 和 vtkplotter 库。
到目前为止,我已经尝试为每个 DICOM 图像创建一个 vtkImageData 对象,并使用 vtkImageAppend.AddInputData() 将它们全部输入到 vtkImageAppend 对象中。
代码是我用来附加所有图像的函数,这些图像作为名为 vtkList 的列表传递给函数。
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()
CombineVTKs() 函数的输出是一个 '(vtkCommonDataModelPython.vtkImageData)' 对象,但是当我尝试创建一个 vtkplotter.Volume() 对象并显示它时,一切都中断了,让我非常难过。这是代码和以下错误:
a = CombineVTKs(myVtkList)
vol = vtkplotter.Volume(a)
vtkplotter.show(vol, bg='white')
产生的错误是:
ERROR: In C:\VPP\standalone-build\VTK-
source\Rendering\Volume\vtkGPUVolumeRayCastMapper.cxx, line 336
vtkOpenGLGPUVolumeRayCastMapper (000002B3516FA9C0): No scalars named ""
or with id -1 found on input.
ERROR: In C:\VPP\standalone-build\VTK-
source\Rendering\Volume\vtkGPUVolumeRayCastMapper.cxx, line 336
vtkOpenGLGPUVolumeRayCastMapper (000002B3516FA9C0): No scalars named ""
or with id -1 found on input.
有没有人用过vtk &&/|| vtkplotter 做类似的事情,或者有没有人建议用另一种方法来完成这个?
解决方案
推荐阅读
- php - 带有参数的 Symfony 5 自定义路由导致 404 错误
- bash - 在构建这个 rpm 包时如何执行 bash 脚本?
- ubuntu - 如何在 CentOS 上使用 yum 命令将 PHP 从 7.2 升级到 7.3?
- javascript - 如何将数据值用作数据表中的属性值?
- windows - 可以在 Windows Hyper-V 中调出来宾操作系统中的非分页内存吗?
- c# - 在 .NET Core 2.2 Web API 中嵌套资源
- r - 如何使用 **for** 循环清理大型数据集
- oracle - 为什么 Oracle 不对非唯一索引使用索引全扫描?
- go - Golang 类型派生自基类型赋值问题
- node.js - babel-node 错误:找不到模块 '../es'