在VTK中,我可以使用以下代码段将渲染窗口保存为图像.但是,实际上我想直接将它作为一个numpy数组(没有写然后阅读).
im = vtkWindowToImageFilter()
writer = vtkPNGWriter()
im.SetInput(renderWindow)
im.Update()
writer.SetInputConnection(im.GetOutputPort())
writer.SetFileName("file.png")
writer.Write()
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?
mmg*_*mgp 11
我相信没有必要涉及vtkXWriter
(X
某些格式在哪里),除非您需要X
格式的数据.定义要将其内容导出为图像的窗口后,可以继续获取VTK图像并使用该图像.
from vtk.util.numpy_support import vtk_to_numpy
...
vtk_rw = vtk.vtkRenderWindow()
...
vtk_win_im = vtk.vtkWindowToImageFilter()
vtk_win_im.SetInput(vtk_rw)
vtk_win_im.Update()
vtk_image = vtk_win_im.GetOutput()
width, height, _ = vtk_image.GetDimensions()
vtk_array = vtk_image.GetPointData().GetScalars()
components = vtk_array.GetNumberOfComponents()
arr = vtk_to_numpy(vtk_array).reshape(height, width, components)
...
Run Code Online (Sandbox Code Playgroud)