我有一个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对象的方法的想法。
答案 0 :(得分:2)
只需更改
int dimensions[ ImageDimension ];
到
npy_intp dimensions[ ImageDimension ];
并重新编译。
答案 1 :(得分:1)
答案 2 :(得分:0)
在Modules / External中克隆ITK源代码树中的PyBuffer repository。然后在CMake配置中启用它。