我正在尝试在 iPython 笔记本上定义某个 3D 大小的空 ITK 图像,但我一直在定义所谓的:
'itkIndex3' index
我已经为 itk 和 vtk 加载了所有 python 绑定,并定义了不同的类型(在这种情况下,一个大小为 80 和体素大小为 0.5 毫米的浮动 3-D 图像),但我仍然无法用任何填充它价值。这是代码,因此您可以查看:
# Tools for Biomedical Imaging
import nibabel as nib
import itk
import vtk
start = itk.Index[3]
size = itk.Size[3]
start.Fill(0)
-----------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/administrator/<ipython-input-63-8774101ef8fb> in <module>()
1 start = itk.Index[3]
2 size = itk.Size[3]
----> 3 start.Fill(0)
Fill() must be called with itkIndex3 instance as first argument (got int instance instead)
也许这是一个完全愚蠢的问题,但我真的很感谢有人在定义“填充”值时阐明这可能是错误的原因。
提前致谢!!
-------------------------------------------------------------------
-------------------------------------------------------------------
嗨!,我想我可以用不同的方法解决这个问题,我将包含我用来创建 3D 浮动图像的代码,供大家查看;)!
nii_PixelType = itk.F # Read the image, also possible using nibabel
nii_ImageType = itk.Image[nii_PixelType, 3]
def CreateBaseAtlas(total_Size):
# Created based on the code in:
# http://www.itk.org/Wiki/ITK/Examples/ImageProcessing/ResampleImageFilter
image = nii_ImageType.New()
_start=[0,0,0]
_size=[total_Size,total_Size,total_Size]
_region = itk.ImageRegion._3(_start,_size)
image.SetRegions(_region)
image.Allocate()
image.FillBuffer(0)
return image
我认为它不起作用的原因仅仅是因为我没有将它直接写为向量。在 ITK 中,他们以不同的方式进行操作:http ://www.itk.org/Wiki/ITK/Examples/ImageProcessing/ResampleImageFilter