从numpy数组转换为itk图像
我有一个numpy数组,想把它转换成ITK图像,以便进行进一步处理。我该怎么做呢?我不想使用PyBuffer扩展来实现WrapITK,因为在编译的时候遇到了一堆错误:
.../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
在你的ITK源代码目录下的Modules/External文件夹里,克隆一下PyBuffer这个项目。然后在你的CMake配置中把它启用。
1
你可能会对最近的SimpleITK项目感到很感兴趣。
在www.simpleitk.org上有很多相关信息。
源代码和大量文档可以在http://www.github.com/SimpleITK找到。
2
只需要把
int dimensions[ ImageDimension ];
改成
npy_intp dimensions[ ImageDimension ];
然后重新编译一下就可以了。