读取NiFTI格式的数据的方法,除了用软件查看图像之外,用代码可以得到整张图像的矩阵,再进一步显示出来
1.Python
安装nibabel包:pip nibabel
import numpy as np
import nibabel as nib
import matplotlib.pyplot as plt
data_path = "i:/ADNI/train/AD/AD_train_1.nii.gz"
img = nib.load(data_path).get_data()
print(img.shape)
img_2d = img[:, :, 70] # 取出一张图像
plt.imshow(img_2d) #显示图像
plt.pause(0.001)
N=2
[r,c,h] = img.shape
dr = round(r/N)
dc = round(c/N)
dh = round(h/N)
Idown = np.zeros((dr,dc,dh))
p =0
q =0
w =0
for i in range(0,r,2):
for j in range(0,c,2):
for k in range(0,h,2):
Idown[p,q,w] = img[i,j,k]
#print(img[i,j,k])
w = w+1
w =0
q = q+1
q = 0
p = p+1
print(Idown.shape)
plt.imshow(Idown[:,:,35])
2.Matlab
原理跟python差不多,需要安装一个工具包Tools for NIfTI and ANALYZE image
安装工具包方法
nii = load_nii( 'i:/ADNI/train/AD/AD_train_1.nii.gz' ); % 装载.nii数据
img = nii.img; 文件有img和head二个部分,其中img部分是图像数据
img_2d = imshow(img(:,:,75),[]);
参考文章:
1.如何处理.nii文件
2.降采样