如何解决将VTK图像.vti数据转换为VTK多边形.vtp数据
我正在尝试获取从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文档和一些提供的示例,但我不知道自己做错了什么。
解决方法
要读取.vtki文件,您需要使用vtk.vtkXMLImageDataReader。您正在尝试使用vtk.vtkPolyDataReader读取图像文件,该文件旨在读取曲面网格。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。