vtkImageViewer2的使用方法(原始灰度图像和分割后的彩色图像的叠加显示)

vtkImageViewer2是vtk的一个图像显示类,用它来展示dicom序列是一个很好的选择。封装了VTK图像显示的管线,包括vtkActor,vtkRender,vtkRenderWindow,vtkInteractorStypeImage等对象,可以方便的完成图像显示和交互。该类提供的主要交互操作有:图像放缩,窗宽窗位调节,并提供切片选择,切片方向设置接口。

有时候我们会需要把原始灰度图像和分割后的彩色图像的叠加显示,受到vtkImageViewer2实现彩色图与灰度图叠加显示_l1783111653的博客-CSDN博客启发。

我用上面的方法用python实现了一下,但是发现放在QVTKRenderWindowInteractor上时,看不到映射的彩色图了。

通过调试,把viewer和viewerLayer数据的调换了一下,便可运行成功。

 # # 将视图与交互联系起来
        self.imageviewer.SetRenderWindow(self.vtkWidget.GetRenderWindow())
        self.imageviewer.SetInputData(image1)
        self.imageviewer.SetColorLevel(26)
        self.imageviewer.SetSliceOrientationToXY()

        self.pColorTable.SetNumberOfColors(10)
        self.pColorTable.SetTableRange((0, 3071))
        self.pColorTable.SetTableValue(0, (0.0, 0.0, 1.0, 0.0))
        self.pColorTable.SetTableValue(1, (1.0, 0.0, 0.0, 1.0))
        self.pColorTable.Build()
        self.viewerLayer.SetInputData(image)
        self.viewerLayer.SetRenderWindow(self.imageviewer.GetRenderWindow())
        self.viewerLayer.SetSliceOrientationToXY()
        self.viewerLayer.SetColorLevel(1)
        self.viewerLayer.GetImageActor().SetInterpolate(False)
        self.imageviewer.GetImageActor().GetProperty().SetLookupTable(self.pColorTable)
        self.viewerLayer.GetImageActor().GetProperty().SetDiffuse(0.0)
        self.viewerLayer.GetImageActor().SetPickable(False)
        # 添加多个ImageActor
        self.imageviewer.GetRenderer().AddActor(self.viewerLayer.GetImageActor())
        # 为视角创建渲染窗口
        self.imageviewer.SetupInteractor(self.iren)

结果:

猜你喜欢

转载自blog.csdn.net/yinyiYi159/article/details/122304643