vtk中的marching cubes是否需要特定的输入?

2024-10-03 15:22:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在我向marching cubes类传递ImageData之后,它不会生成任何内容。在

我正在尝试从一个三维纽比阵列生成曲面。我使用evtk将数组导出到.vti(结构化点)文件并存储为pointData。然后,通过vtkXMLImageDataReader读取该文件。在将读取器(vtkImageData)的输出传递给vtkMarchingCubes类后,该类返回一个没有点或单元格的vtkPolyData,vtkWiki的示例中使用了vtkImageData,MarchingCubes类应该没有问题来处理它。在

我尝试导出阅读器生成的图像数据,输出可以通过ParaView可视化而没有任何问题。在

我想知道,有什么特殊的要求来生成vtk曲面吗?如果三维数字模型能够直接转换为适合于Marchingcube的数据类型,那就更好了。在

下面是我读取.vki文件并将其传递给marching cubes的代码:

dataReader = vtk.vtkXMLImageDataReader()
dataReader.SetFileName('model_name.vti')
dataReader.Update()
contacts = vtk.vtkDiscreteMarchingCubes()
contacts.SetInputConnection(dataReader.GetOutputPort())
contacts.SetValue(0,1)
contacts.ComputeNormalsOn()
contacts.Update()
result = contacts.GetOutput()

Tags: 文件内容update数组contacts曲面vtkdatareader
1条回答
网友
1楼 · 发布于 2024-10-03 15:22:18

如果您希望在python/numpy世界中这样做,那么我建议使用here中的marching cubes实现(或者查看pyqtgraph中的isosurface例程,mayavi…)。虽然有很多关于在VTK之间移动数据的教程,但是如果您已经在使用numpy编程,我不会将这两种方法混合使用。在

相关问题 更多 >