有一些选项可以通过文件名从系统中的nii
或.nii
个文件中加载.nii.gz
个文件。您只需使用nib.load(filename)。
但是,当直接从Python使用Google Cloud Storage(或任何其他对象存储,例如Amazon S3)时,您可能要跳过将数据下载到本地文件系统然后再加载到Python的过程。如果您使用的是Google Colap笔记本,则更多。有可能,您不想为大量数据这样做。
Nibabel还可以通过nib.Nifti1Image(dataobj, affine)直接从对象创建Nifti1Image
实例,其中dataobj的指定如下:
dataobj:对象
对象包含图像数据。它应该是某个对象,该对象从np.asanyarray恢复数组。它应该具有shape属性或属性
将对象数据加载到Colab笔记本中时,我有一个google.cloud.Blob
,或者我有BytesIO
个字节的对象:
from google.cloud import storage
client = storage.Client(project="my_project")
bucket = client.get_bucket('my_bucker')
blob = bucket.blob('data/image.nii.gz') # blob
bytes = io.BytesIO(blob.download_as_string()) # bytes
如何从中创建Nifti1Image
?我可以解压缩.nii.gz
,但是我想Nibabel可以处理它本身。我不确定我将使用什么程序来创建适当的ndarray以馈入nib. Nifti1Image()
中。我只是尝试了一堆转换,但我一定会丢失一些东西。