VTK不显示输出,渲染

时间:2017-05-10 11:06:53

标签: python rendering vtk

我写了这段代码,但在输出中,它只显示黑屏。有什么东西丢失了或者我在某个地方犯了错误?我使用阅读器,映射器,演员,渲染和数学。

使用@tomj

中的提示更改了代码

Python,VTK 6.2

  import vtk



reader = vtk.vtkXMLImageDataReader()
reader.SetFileName("aneurysm.vti")
reader.Update()
data=reader.GetOutput()



math=vtk.vtkImageMathematics()
math.SetInputData(data) 
math.SetConstantC(1024)
math.SetOperationToAddConstant ()
math.Update()

data=math.GetOutput()
reader.Update()
print data.GetScalarRange()

contFilter=vtk.vtkContourFilter()
contFilter.SetValue(1,1250.0)
contFilter.Update()
data=contFilter.GetOutput()

Mapper = vtk.vtkPolyDataMapper()
Mapper.SetInputData(data)


Actor = vtk.vtkActor()
Actor.SetMapper(Mapper)


renderWindow = vtk.vtkRenderWindow()
renderer = vtk.vtkRenderer()
renderWindow.AddRenderer(renderer)
renderer.AddActor(Actor)

iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renderWindow)


iren.Initialize()
renderWindow.Render()
iren.Start()

1 个答案:

答案 0 :(得分:0)

您实际上没有使用映射器,您的actor没有数据可供显示。您应该将数据分配给映射器(Mapper.SetInputData(data),假设数据类型为vtkPolyData),然后将映射器分配给actor(Actor.SetMapper(Mapper))。

在添加上一个之后编辑:这次看起来你错过了轮廓过滤器的输入(所以我认为是contFilter.SetInputData(data))。