【1】格式介绍
.nii文件是NIFTI格式的文件,出现的原因是原来一种图像格式是ANALYZE 7.5 format,但是这个图像格式缺少一些信息,比如没有方向信息,病人的左右方位等,如果需要包括额外的信息,就需要一个额外的文件,比如ANALYZE7.5就需要一对<.hdr, .img>文件来保存图像的完整信息。因此,解决这个问题Data Format Working Group (DFWG) 将图像格式完整的定义为NIFTI(Neuroimaging Informatics Technology Initiative)格式。标准NIFTI图像的扩展名是.nii,也包含了头文件及图像资料。由于NIFTI格式和Analyze格式的关系,因此NIFTI格式也可使用独立的图像文件(.img)和头文件(.hdr)。单独的.nii格式文件的优势就是可以使用标准的压缩软件(如gzip)进行压缩,而且一些分析软件包(比如FSL)可以直接读取和写入压缩的.nii文件(扩展名为.nii.gz)。
【2】读取显示
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File : test10.py
@Time : 2021/04/30 17:56:59
@Author : Jian Song
@Contact : 1248975661@qq.com
@Desc : None
'''
# here put the import lib
import SimpleITK as itk
from matplotlib import pyplot as plt
'''
SimpleIKT 读取数据
需要注意,SimpleIKT读取出来的图片的维度顺序与NiBabel 不同
https://blog.youkuaiyun.com/Emily_Buffy/article/details/104879558?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242
'''
def show_nii(img):
num=1
for i in range(0,img.shape[0],10):
plt.imshow(img[i,:,:],cmap='gray')
plt.subplot(4,6,num)
num+=1
itk_img=itk.ReadImage('F:\\mediacldata\\Pancreasimages\\Pancreas-CT\\data\\PANCREAS_0001.nii.gz')
img=itk.GetArrayFromImage(itk_img)
print(img.shape) #(144, 192, 160)
show_nii(img)
plt.show()
【3】参考文献
python ,matlab 读取NIFTI(.nii)格式图像、FSL安装
.nii详细介绍:https://brainder.org/2012/09/23/the-nifti-file-format/?blogsub=confirming#subscribe-blog