Я использую python 2.6 с оболочками ITK (из PythonXY 2.6.6.2). Я пытаюсь отправить трехмерное изображение из 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)
Как самому создать пустой массив, который будет принят GetImageFromArray ()?