[英]Save .vtk voxelized file in Python
我有一个来自代表体素的 txt 文件的 3D 矩阵数据。 我已经在 vtk 中将它们表示为结构化网格:
grid = vtk.vtkExplicitStructuredGrid()
一切正常。 添加颜色函数、演员、渲染器、window...但现在我想将它保存为.vtk 文件以便用其他应用程序读取它,但我不知道如何。 我试过了:
exporter = vtk.vtkVRMLExporter()
exporter.SetRenderWindow(window)
exporter.SetFileName("sample.vtk")
exporter.Write()
exporter.Update()
但它创建的文件几乎是空的,只有元数据而不是体素数据。 我尝试将其更改为:vtkVTKExporter 但也没有用。
我还尝试使用其他调用“网格”的函数,但甚至没有创建文件:
vtkXMLUnstructuredGridWriter
vtkXMLPolyDataWriter
vtkXMLUnstructuredGridWriter
最后我尝试使用:
writer = vtk.vtkStructuredPointsWriter()
windowto_image_filter = vtk.vtkWindowToImageFilter()
windowto_image_filter.SetInput(window)
windowto_image_filter.SetScale(1) # image quality
windowto_image_filter.SetInputBufferTypeToRGBA()
writer.SetFileName('sample2.vtk')
writer.SetInputConnection(windowto_image_filter.GetOutputPort())
writer.Write()
但是会导致错误。
有没有办法将它保存为包含所有表示信息的二进制 a.vtk 文件? 而且,有没有办法将创建为 a.jpg 或 .png 的 vtk window 中的图像保存为屏幕截图。 谢谢!
用数据保存网格:使用编写器(导出器意味着保存“现在可见的内容”,而不是底层数据)。
使用vtkStructuredGrid
时,使用vtkXMLStructureGridWriter
生成.vts
文件,或使用vtkDataSetWriter
生成遗留.vtk
文件。 然后调用writer.SetInputData(grid)
要保存屏幕截图,您可以在 vtkWindowToImageFilter 的vtkPNGWriter
上使用vtkWindowToImageFilter
,如本示例中所述
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.