VTK 7.0.0 ImageTracerWidget 隐藏在 imageactor 后面
VTK 7.0.0 ImageTracerWidget hidden behind imageactor
使用 python,我试图在图像周围绘制 ROI。为了测试,我有以下代码。但是,字形隐藏在图像后面。当我降低叠加图像的透明度时,我也没有看到正在绘制的 ROI:
import vtk
imageSource = vtk.vtkImageCanvasSource2D()
imageSource.SetScalarTypeToUnsignedChar();
imageSource.SetNumberOfScalarComponents(3);
imageSource.SetExtent(0, 20, 0, 50, 0, 0);
imageSource.SetDrawColor(0, 0, 0);
imageSource.FillBox(0, 20, 0, 50);
imageSource.SetDrawColor(255, 0, 0);
imageSource.FillBox(0, 10, 0, 30);
imageSource.Update();
actor = vtk.vtkImageActor()
actor.GetMapper().SetInputConnection(imageSource.GetOutputPort())
actor.VisibilityOn()
actor.AddPosition(10,10,-13)
actor.InterpolateOff()
ip = vtk.vtkImageProperty()
ip.SetColorWindow(2000)
ip.SetColorLevel(1000)
ip.SetAmbient(0.0)
ip.SetDiffuse(1.0)
ip.SetOpacity(1.0)
ip.SetInterpolationTypeToLinear()
actor.SetProperty(ip)
renderer = vtk.vtkRenderer()
renderer.AddActor(actor)
renderer.ResetCamera()
renderWindow= vtk.vtkRenderWindow()
renderWindow.AddRenderer(renderer)
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(renderWindow)
style = vtk.vtkInteractorStyleImage()
interactor.SetInteractorStyle(style)
tracer = vtk.vtkImageTracerWidget()
tracer.SetInteractor(interactor)
tracer.SetViewProp(actor)
tracer.AutoCloseOn()
renderWindow.Render()
tracer.On()
vtk.vtkMapper.SetResolveCoincidentTopologyToPolygonOffset()
vtk.vtkMapper.SetResolveCoincidentTopologyPolygonOffsetParameters(10,10)
interactor.Start()
这里一头雾水。我希望有经验的人可以帮助我摆脱困境!
唉,这个问题似乎是上一个 VTK-7.0.0 中的一个错误。我将设置恢复为 VTK-6.1.0,问题已解决。现在 VTKImageTracerWidget 绘制得很好
我发现它已在 VTK8.0 中得到修复 "it was modifying the lines without calling Modified on them"
使用 python,我试图在图像周围绘制 ROI。为了测试,我有以下代码。但是,字形隐藏在图像后面。当我降低叠加图像的透明度时,我也没有看到正在绘制的 ROI:
import vtk
imageSource = vtk.vtkImageCanvasSource2D()
imageSource.SetScalarTypeToUnsignedChar();
imageSource.SetNumberOfScalarComponents(3);
imageSource.SetExtent(0, 20, 0, 50, 0, 0);
imageSource.SetDrawColor(0, 0, 0);
imageSource.FillBox(0, 20, 0, 50);
imageSource.SetDrawColor(255, 0, 0);
imageSource.FillBox(0, 10, 0, 30);
imageSource.Update();
actor = vtk.vtkImageActor()
actor.GetMapper().SetInputConnection(imageSource.GetOutputPort())
actor.VisibilityOn()
actor.AddPosition(10,10,-13)
actor.InterpolateOff()
ip = vtk.vtkImageProperty()
ip.SetColorWindow(2000)
ip.SetColorLevel(1000)
ip.SetAmbient(0.0)
ip.SetDiffuse(1.0)
ip.SetOpacity(1.0)
ip.SetInterpolationTypeToLinear()
actor.SetProperty(ip)
renderer = vtk.vtkRenderer()
renderer.AddActor(actor)
renderer.ResetCamera()
renderWindow= vtk.vtkRenderWindow()
renderWindow.AddRenderer(renderer)
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(renderWindow)
style = vtk.vtkInteractorStyleImage()
interactor.SetInteractorStyle(style)
tracer = vtk.vtkImageTracerWidget()
tracer.SetInteractor(interactor)
tracer.SetViewProp(actor)
tracer.AutoCloseOn()
renderWindow.Render()
tracer.On()
vtk.vtkMapper.SetResolveCoincidentTopologyToPolygonOffset()
vtk.vtkMapper.SetResolveCoincidentTopologyPolygonOffsetParameters(10,10)
interactor.Start()
这里一头雾水。我希望有经验的人可以帮助我摆脱困境!
唉,这个问题似乎是上一个 VTK-7.0.0 中的一个错误。我将设置恢复为 VTK-6.1.0,问题已解决。现在 VTKImageTracerWidget 绘制得很好
我发现它已在 VTK8.0 中得到修复 "it was modifying the lines without calling Modified on them"