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"

更多详情: "https://github.com/Kitware/VTK/commit/35e42be7eb61ed5d0dbea6db468776080e900443#diff-4374799689b56389f1a2c2f6fc250110