繁体   English   中英

如何在 Python 中实现 itk 图像和 SimpleITK 图像之间的转换?

[英]How can I implement the conversion between itk image and SimpleITK image in Python?

我知道在C++中实现itk图像和SimpleITK图像之间转换的方法,这是SimpleITK中的一个例子(Examples/ITKIntegration.cxx)。

  //
  // Extract the itk image from the SimpleITK image
  //
  InternalImageType::Pointer itkImage =
    dynamic_cast <InternalImageType*>( image.GetITKBase() );
  ...
  //
  // Return to the simpleITK setting by making a SimpleITK image using the
  // output of the blur filter.
  //
  sitk::Image blurredImage = sitk::Image( blurFilter->GetOutput() );

但是在 Python 中,当我使用“sitk.Image(itkImage)”,其中 itkImage 是一个 itkImage 时,我得到一个错误“this = _SimpleITK.new_Image(*args) NotImplementedError: 重载函数‘new_Image’的参数数量或类型错误”。 在 python 中,不可能在 C++ 中转换像“dynamic_cast”这样的类型。

对此有一种可能的解决方案,即使用 PyBuffer 将 itkImage 转换为 numpy 数组,然后使用 SimpleITK 将数组转换为 SimpleITK 图像。 但是我无法构建 itkPyBuffer。 而且我认为这种方法并不能直接解决这个问题。

你能帮我把 C++ 代码转换成可用的 python 代码吗? 谢谢你。

这是 ITK 和 SimpleITK 图像之间的转换器: https : //github.com/gregpost/itk-SimpleITK-Converter

我可以复制一个 SimpleITK 图像无法从 itk 图像在 Python 中实例化。 我没有找到绕过 PyBuffer 的方法,所以你可能不得不编译。 以下是一个可能对您有所帮助的小错误的描述: https : //pypi.python.org/pypi/MedPy/0.1.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM