【发布时间】:2020-08-17 12:03:47
【问题描述】:
我正在尝试获取一些从 3-D numpy 数组生成的 VTK 图像数据,并将其转换为多边形数据,以便仅将 .vtp 作为输入格式的包读取它。我选择使用行进立方体算法将我的点/节点数据作为输入,并将多边形数据作为输出。数据分为两个阶段(0 = 黑色,255 = 白色),因此只需要一个轮廓。我尝试使用vtkPolyDataReader 类为vtkMarchingCubes 类创建对象,然后使用vtkPolyDataWriter 获取轮廓行进立方体对象并将其保存为VTP 文件:
import vtk
input = 'mydata.vti'
reader = vtk.vtkPolydataReader()
reader.SetFileName(input)
reader.Update()
contour = vtk.vtkMarchingCubes()
contour.SetInputConnection(reader.GetOutputPort())
contour.SetValue(0, 128.)
contour.Update()
writer = vtk.vtkPolyDataWriter()
writer.SetInputData(contour.GetOutput())
writer.SetFileName('mydata.vtp')
writer.Update()
writer.Write()
当我运行代码时,它花费的时间比应有的要少得多(输入文件大约 2 GB),并且代码创建的 VTP 文件小于 1 KB。我一直在用头撞墙,仔细研究 VTK 文档和一些提供的示例,但我不知道我做错了什么。
【问题讨论】: