我写了这段代码,但在输出中,它只显示黑屏。有什么东西丢失了或者我在某个地方犯了错误?我使用阅读器,映射器,演员,渲染和数学。
使用@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()
答案 0 :(得分:0)
您实际上没有使用映射器,您的actor没有数据可供显示。您应该将数据分配给映射器(Mapper.SetInputData(data),假设数据类型为vtkPolyData),然后将映射器分配给actor(Actor.SetMapper(Mapper))。
在添加上一个之后编辑:这次看起来你错过了轮廓过滤器的输入(所以我认为是contFilter.SetInputData(data))。