繁体   English   中英

Python中保存.vtk体素化文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM