2024-09-30 01:20:09 发布
网友
我正在尝试可视化一系列dicom图像,这些图像是在官方VTK回购的example Medical3.py之后出现的。我在python中找到的所有示例都使用classvtkVolume16Reader,它需要定义的文件名模式<;%s>;<;%d>;。这是否意味着没有用于读取具有其他名称模式的图像序列的API?你知道吗
基于C++ Read Dimo系列的例子,我用观测器重写了类似于在切片之间移动的模拟(更好的是定制VTKTICANTROSTYRILE图像类)。下面是一个简单的示例,您可以从第50层开始,通过按“k”移动到第60层,或通过按“l”移动到第40层:
import sys import numpy as np import vtk PathDicomDir = "/path/to/dicom/dir" reader = vtk.vtkDICOMImageReader() reader.SetDirectoryName(PathDicomDir) reader.Update() viewer = vtk.vtkImageViewer2() viewer.SetInputData(reader.GetOutput()) viewer.SetSlice(50) def Keypress(obj, event): key = obj.GetKeySym() if key == "e": obj.InvokeEvent("DeleteAllObjects") sys.exit() elif key == "k": viewer.SetSlice(60) print("next") elif key == "l": print("prev") viewer.SetSlice(40) iren = vtk.vtkRenderWindowInteractor() iren.AddObserver("KeyPressEvent", Keypress) viewer.SetupInteractor(iren) viewer.Render() viewer.GetRenderer().ResetCamera() viewer.Render() iren.Start()
另外,有两个窗口在运行时出现。请让我知道如何删除其中一个。你知道吗
基于C++ Read Dimo系列的例子,我用观测器重写了类似于在切片之间移动的模拟(更好的是定制VTKTICANTROSTYRILE图像类)。下面是一个简单的示例,您可以从第50层开始,通过按“k”移动到第60层,或通过按“l”移动到第40层:
另外,有两个窗口在运行时出现。请让我知道如何删除其中一个。你知道吗
相关问题 更多 >
编程相关推荐