如何使用Python中的.img/.hdr数据?

2024-09-30 10:32:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些核磁共振扫描文件的扩展.img/.hdr/.gif。我对它完全陌生。在

我该怎么处理它?我怎么能在那个“.img”阵列里看核磁共振扫描的切片?在

我发现了

import nibabel as nib
img = nib.load('./OAS1_0001_MR1_mpr_n4_anon_111_t88_masked_gfc_fseg.img')
print(img)

这说明

^{pr2}$

但是没有什么东西可以让我得到核磁共振扫描的切片。我怎么能画出来呢?我假设img.get_data()应该对我有帮助。。。在


Tags: 文件importimghdrasload切片gif
2条回答

对于打印,可以使用

from nilearn import plotting
plotting.plot_anat(img, title="plot_anat")

要提取正确的数据,可以使用img.get_数据()

根据数据的形状(data shape (176, 208, 176, 1))判断,这是一个三维图像,因此您需要指定要在二维中绘制的平面。有三个选项:

  • 轴向的、水平的或横向的;把身体分成头和尾(Z轴)
  • 冠状面或正面;将身体分为前后两部分(Y轴)
  • 矢状面或纵切面;将身体分成左右两部分(X轴)

你可以在Wikipedia中找到更多关于解剖平面的细节,以及一个非常有用的图表。在

因此,对于您的数据,一旦您按照您所描述的那样阅读了它,您可以通过调用

im_data = img.get_fdata()(我收到了get_data()的折旧警告)

数据数组将具有相同的形状,因此如果要沿其中一个平面绘制中心切片,只需写下:

import matplotlib.pyplot as plt

center_slice = im_data[:,:,88, 0]
fig, ax = plt.subplots(1,1)
ax.imshow(center_slice, cmap="gray")
plt.show()

请注意,图像不一定正确定位(旋转、轴等)。有时,它可以旋转90度或者手动移动scipy.ndimage.shift()nilearn plotting源代码包含对默认MPL轴的转换和修改的全面列表,因此值得一看。在

相关问题 更多 >

    热门问题