use*_*800 6 python arrays numpy image vtk
我试图用python和python-vtk处理MHD图像文件.该文件放在谷歌驱动器:mhd.
我想将它转换为numpy数组,然后根据给定的值"500例如"分割它们.然后计算摘要信息.我按照这个
[post]的说明如何将3D vtkDataSet转换为numpy数组?
但它对我的情况不起作用.
import vtk
imageReader = vtk.vtkMetaImageReader()
imageReader.SetFileName(testfile1)
imageReader.Update()
# from vtk.util.numpy_support import numpy_to_vtk, vtk_to_numpy does not work for the data type issue
image = imageReader.GetOutput()
# List the dimensions of the image, for example
print image.GetDimensions()
pixelspace = imageReader.GetPixelSpacing()
Run Code Online (Sandbox Code Playgroud)
这里出现错误:
AttributeError: GetPixelSpacing
Run Code Online (Sandbox Code Playgroud)
我怎么能实现转换?
当我完成数据拆分时,我怎么能将它们保存回mhd(或原始数据会更好?)
改编自此线程...您可以执行以下操作:
import numpy as np
import vtk
from vtk.util.numpy_support import vtk_to_numpy
imr = vtk.vtkMetaImageReader()
imr.SetFileName('t10-Subvolume-resample_scale-1.mhd')
imr.Update()
im = imr.GetOutput()
rows, cols, _ = im.GetDimensions()
sc = im.GetPointData().GetScalars()
a = vtk_to_numpy(sc)
a = a.reshape(rows, cols, -1)
assert a.shape==im.GetDimensions()
Run Code Online (Sandbox Code Playgroud)
其中a将是一个包含图像数据的 NumPy 数组。
| 归档时间: |
|
| 查看次数: |
2245 次 |
| 最近记录: |