0

我正在尝试将 MRI 脑成像数据用于深度学习模型。目前我的图像有 4 个维度,如下所示,但我只想保留 MRI 图像的 T1c 模态,因为我的模型输入应该只是 1 通道 3D MRI (T1c)。

我确实尝试过使用 Nibabel 包,如下所示

import nibabel as nib 
ff = glob.glob('imagesTr\*')
a = nib.load(ff[0])
a.shape

这将返回以下输出

在此处输入图像描述

我还粘贴了“a”的标题信息

在此处输入图像描述

由此,哪个维度用于识别 MRI 模态,如(T1、T2、T1c、FLAIR 等)?以及我怎样才能只保留 T1c?你能帮忙吗?

4

2 回答 2

2

首先,您需要确定图像存储在第 4 维中的顺序。

标题可能会有所帮助:

print(a.header)

接下来,要仅保留一种模式,您可以使用以下命令:

data = a.get_fdata()
modality_1 = data[:,:,:,0]

编辑1:

根据挑战的网站:

所有 BraTS 多模式扫描均以 NIfTI 文件 (.nii.gz) 的形式提供,并描述 a) 原生 (T1) 和 b) 对比后 T1 加权 (T1Gd)、c) T2 加权 (T2) 和 d) T2 流体衰减反转恢复 (FLAIR) 卷,并通过不同的临床协议和来自多个 (n = 19) 机构的各种扫描仪获得,此处被称为数据贡献者。

所提供的数据在其预处理后分发,即共同注册到相同的解剖模板,内插到相同的分辨率(1 mm^3)并剥去颅骨。

因此,在这种情况下,标题将无济于事(由于预处理,所有模态的尺寸相等)。

如果您正在寻找对比后 T1 加权 (T1Gd)图像,那么它是第二维,因此请使用:

data = a.get_fdata()
modality_1 = data[:,:,:,1]

此外,我们可以可视化每个 3D 体积(data[:,:,:,0], data[:,:,:,1],data[:,:,:,2], data[:,:,:,3])并验证我的陈述。

见这里:https ://gofile.io/?c=fhoZTu

于 2019-06-21T08:23:45.420 回答
1

无法从 Nifti 标头中识别 MRI 的类型。您将需要原始 DICOM 图像来获取此类信息。

但是,您可以目视检查您的图像并比较白质、灰质和心室的对比度/颜色,以确定您的图像是 T1、T2、FLAIR 等。例如,在 T1 图像中,您会期望更暗灰质、较轻的白质和黑色脑脊液。在 T2 图像中,您会看到较浅的灰质、较深的白质和白色 CSF。FLAIR 与 T2 相同,但脑脊液“倒置”。在此处查看一些示例大脑图像:https ://casemed.case.edu/clerkships/neurology/Web%20Neurorad/t1t2flairbrain.jpg

话虽这么说,您似乎有一个 4 维图像,它暗示了某种时间序列,所以我假设您的数据是 DTI 或 fMRI 或类似的东西。

也无法将一种类型的 MRI 转换为另一种类型,因此如果您的数据集还不是 T1,则无法在需要干净 T1 数据的模型中使用它。

我强烈建议您了解有关 MRI 和您正在使用的数据类型的更多信息。否则将无法解释您的结果。

于 2019-11-04T11:06:18.813 回答