我正在使用带有 ITK 包装器的 python 2.6(来自 PythonXY 2.6.6.2)。我正在尝试将 3D 图像从 numpy/scipy 发送到 itk 进行处理。
import itk
imageType = itk.Image.F3
buf = scipy.zeros( (100,100,100), dtype = float)
itkImage = itk.PyBuffer[imageType].GetImageFromArray(buf)
GetImageFromArray() 失败并出现以下错误:
RuntimeError: Contiguous array couldn't be created from input python object
但是,如果我自己不创建缓冲区,而是让 ITK 创建图像,GetImageFromArray() 会突然起作用:
import itk
imageType = itk.Image.F3
itkImage1 = imageType.New(Regions=[256, 256, 256])
buf = itk.PyBuffer[imageType].GetArrayFromImage(itkImage1)
itkImage2 = itk.PyBuffer[imageType].GetImageFromArray(buf)
我如何自己创建一个 numpy 数组,它将被 GetImageFromArray() 接受?