我试图获取一些从3-D numpy
数组生成的VTK图像数据,并将其转换为poly数据,这样它就可以被只使用.vtp作为输入格式的包读取。我选择使用marching cubes算法将我的点/节点数据作为输入,并将多边形数据作为输出。数据分为两个阶段(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()
当我运行代码时,它所花费的时间比它应该花费的要少得多(输入文件大约为2GB),并且代码创建的VTP文件小于1KB。我一直在为此而头痛,仔细阅读VTK文档和提供的一些示例,但我不知道我做错了什么
要读取.vtki文件,需要使用vtk.vtkxmlmagedatareader。您正在尝试使用vtk.vtkPolyDataReader读取图像文件,该读取器用于读取曲面网格
相关问题 更多 >
编程相关推荐