【问题标题】:How to use VTK_array in VTK pipeline (Python)?如何在VTK管道(Python)中使用VTK_array?
【发布时间】:2021-11-04 11:00:10
【问题描述】:

我是 vtk 的新手,正在尝试使用 DICOM 文件进行体积渲染。

当我尝试使用带有以下代码的 VTK 读取 DICOM 文件时:

import vtk
reader = vtk.vtkDICOMImageReader()
reader.SetDirectoryName(r"C:\Users\I_0001")
reader.Update()

我收到以下错误:

ERROR: In ..\IO\Image\vtkDICOMImageReader.cxx, line 143
vtkDICOMImageReader (000001DC61D2FED0): Couldn't open C:\Users\I_0001

ERROR: In ..\IO\Image\vtkDICOMImageReader.cxx, line 237
vtkDICOMImageReader (000001DC61D2FED0): Either a filename was not specified or the specified directory does not contain any DICOM images.

ERROR: In ..\Common\ExecutionModel\vtkExecutive.cxx, line 753
vtkCompositeDataPipeline (000001DC5C4A0A90): Algorithm vtkDICOMImageReader(000001DC61D2FED0) returned failure for request: vtkInformation (000001DC5F8E72A0)
  Debug: Off
  Modified Time: 207
  Reference Count: 1
  Registered Events: (none)
  Request: REQUEST_DATA
  FORWARD_DIRECTION: 0
  ALGORITHM_AFTER_FORWARD: 1
  FROM_OUTPUT_PORT: 0

我知道文件没有损坏,因为当我尝试使用 pydicom 读取它时它可以正常工作。我尝试使用 pydicom 将文件读入 numpy 数组,然后使用 numpy_support.numpy_to_vtk 转换为 vtk 数组。但是我不知道如何将这些图像插入到我的 vtk 管道中,该管道使用 reader.GetOutputPort() 来启动管道。 谁能帮我将我的 DICOM 文件图像(它们是 VTK 数组)插入到 VTK 管道中?

这是我当前的代码:

# reading the data and converting it to VTK array using numpy_support
fileVolume = r"C:\Users\I_0001"
dicomVolume = pydicom.read_file(fileVolume)
shape = dicomVolume.pixel_array.shape
VTK_data = numpy_support.numpy_to_vtk(num_array=dicomVolume.pixel_array.ravel(), deep=True, array_type=vtk.VTK_FLOAT)


#need to insert VTK data here instead of using the vtk DICOM Image Reader
# Create the reader for the data.
reader = vtk.vtkDICOMImageReader()
reader.SetDirectoryName(r"C:\Users\I_0001")
reader.Update()

mapper = vtk.vtkDataSetMapper()
mapper.SetInputData(reader.GetOutput())

【问题讨论】:

  • I_0001 是实际的 DICOM 文件还是包含 DICOM 文件的文件夹?
  • 关于如何从numpy创建VTK对象和管道,可以看这个example

标签: python vtk pydicom


【解决方案1】:

使用@Nico Vuaille 链接的VTKWithNumpy example,我能够将我的numpy 数组转换为VTK 图像对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 2016-05-25
    相关资源
    最近更新 更多