使用不带FilePrefix的vtkVolume16Reader

2024-09-30 01:20:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试可视化一系列dicom图像,这些图像是在官方VTK回购的example Medical3.py之后出现的。我在python中找到的所有示例都使用classvtkVolume16Reader,它需要定义的文件名模式<;%s>;<;%d>;。这是否意味着没有用于读取具有其他名称模式的图像序列的API?你知道吗

C++中有example ReadDICOMSeries,不需要特定的文件名模式。如果Python包装器有一些类似的功能,那就太好了。你知道吗


Tags: py图像ltgt示例官方定义文件名
1条回答
网友
1楼 · 发布于 2024-09-30 01:20:09

基于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()

另外,有两个窗口在运行时出现。请让我知道如何删除其中一个。你知道吗

相关问题 更多 >

    热门问题