从numpy数组到itk Image

时间:2010-10-27 23:17:59

标签: python numpy itk

我有一个numpy数组,想要将其转换为ITK图像以便进一步处理。如何在不使用WrapITK的PyBuffer扩展的情况下执行此操作。我无法使用它,因为编译时出现了一堆错误:

.../ExternalProjects/PyBuffer/itkPyBuffer.txx: In static member function ‘static PyObject* itk::PyBuffer<TImage>::GetArrayFromImage(TImage*) [with TImage = itk::Image<float, 2u>]’:
.../ExternalProjects/PyBuffer/wrap_itkPyBufferPython.cxx:1397:   instantiated from here
.../ExternalProjects/PyBuffer/itkPyBuffer.txx:64: error: cannot convert ‘int*’ to ‘npy_intp*’ in argument passing

我可以使用一个关于如何修复编译错误或另一种转换我的python对象的方法的想法。

3 个答案:

答案 0 :(得分:2)

只需更改

int dimensions[ ImageDimension ];

npy_intp dimensions[ ImageDimension ];

并重新编译。

答案 1 :(得分:1)

您可能对最近发生的SimpleITK工作非常感兴趣。

www.simpleitk.org上有很多信息。

可以在http://www.github.com/SimpleITK找到源代码和大量文档。

答案 2 :(得分:0)

在Modules / External中克隆ITK源代码树中的PyBuffer repository。然后在CMake配置中启用它。