【发布时间】:2020-06-25 15:55:47
【问题描述】:
我有一个代表上传图像 (.nii) 的 io.ByteIO 对象,有没有办法从中获取 simpleITK 对象? 一个不好的解决方法是写入文件然后用 simpleITK 读取它
【问题讨论】:
我有一个代表上传图像 (.nii) 的 io.ByteIO 对象,有没有办法从中获取 simpleITK 对象? 一个不好的解决方法是写入文件然后用 simpleITK 读取它
【问题讨论】:
很遗憾,SimpleITK 的 Image IO 不适用于流。它只会从文件中读取。
看起来您可以使用 nibabel 从您的流中读取图像。然后将其转换为numpy数组,再将numpy转换为SimpleITK。这很难看,但至少你不会回到磁盘。
这是一篇关于在 nibabel 中读取流的帖子: https://mail.python.org/pipermail/neuroimaging/2017-February/001345.html
以下是从 nibabel 到 numpy 的方法: How to convert Nifti file to Numpy array?
然后使用 numpy 数组,您可以调用 SimpleITK.GetImageFromArray 来创建 SimpleITK 图像。
这些步骤不会保留任何图像元信息,因此您必须复制图像间距、原点和方向等所有内容。
【讨论】: