如何用Nibabel从Nifti图像中提取图像强度矩阵?

2024-05-01 21:45:05 发布

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

我和尼伯尔是新来的。我想知道如何用这个库从Nifti图像中得到强度矩阵。我使用以下脚本获取体素:

import nibabel as ni
example_img = ni.load('myImage.nii')

data = example_img.get_data()

我一开始以为数据包含体素的强度,但当我打印出来时,我看到了负值,图像中出现负强度似乎很奇怪,你不觉得吗? 我需要在nifti图像中得到体素的强度,nibabel可以吗?如果没有,你能给我另一个解决办法吗?谢谢。在


Tags: 图像import脚本imgdataexampleasload
3条回答

另一个直接使用的方法是^{}::Brain_Data函数将数据直接提取到一维数组中。虽然不是Nibabel,但与您的逻辑类似。在

from nltools.data import Brain_Data
img = Brain_Data('myImage.nii')
data = img.data

不,你可以有底片和nan。在

它们代表大脑外部的体素。 强度只是

data = example_img.get_fdata()

注意:使用get_fdata而不是get_data,以始终获得浮点numpy数组。在

不确定如何获得负体素值,但以下是将NifTi图像显示为矩阵的方法:

import nibabel as ni
img = ni.load('myImage.nii')

data = example_img.get_data()

mat = []

for i in range(img.shape[0]):
  plane = []
  for j in range(img.shape[1]):
    row = []
    for k in range(img.shape[2]):
        row.append(data[i][j][k])
    plane.append(row)
  mat.append(plane)

现在,您可以将变量“mat”打印出来/存储在文本文件中。在

相关问题 更多 >