12

VTK では、次のスニペットを使用してレンダリング ウィンドウを画像として保存できます。ただし、実際には、numpy配列として直接取得したい(書き込みしてから読み取る必要はありません)。

im = vtkWindowToImageFilter()
writer = vtkPNGWriter()
im.SetInput(renderWindow)
im.Update()
writer.SetInputConnection(im.GetOutputPort())
writer.SetFileName("file.png")
writer.Write()

これを行う最善の方法は何ですか?

4

1 に答える 1

12

フォーマット内のデータが必要な場合を除いて、関与する必要はないと思いますvtkXWriter(フォーマットはどこにありますか) 。コンテンツをイメージとしてエクスポートするウィンドウを定義したら、VTK イメージを取得して操作することができます。XX

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)

...
于 2013-01-28T18:40:44.670 に答える