在医学图像处理中,我们经常使用一种NIFTI格式图像(.nii文件),现在我们来看看

1 NIFTI格式图像

1.1 什么是NIFTI格式图像

在讲解什么是NIFTI(Neuroimaging Informatics Technology Initiative)格式之前,得先了解一下Analyze格式。Analyze格式储存的每组数据组包含2个文件,一个为数据文件,其扩展名为.img,包含二进制的图像资料;另外一个为头文件,扩展名为.hdr,包含图像的元数据。在FMRI的早期,Analyze格式最常用的格式,但现在逐渐被NIFTI格式所取代。Analyze格式主要不足就是头文件不能真正反映元数据。

标准NIFTI图像的扩展名是.nii,也包含了头文件及图像资料。由于NIFTI格式和Analyze格式的关系,因此NIFTI格式也可使用独立的图像文件(.img)和头文件(.hdr)。单独的.nii格式文件的优势就是可以使用标准的压缩软件(如gzip)进行压缩,而且一些分析软件包(比如FSL)可以直接读取和写入压缩的.nii文件(扩展名为.nii.gz)。

1.2 为什么会出现NIFTI格式图像

原来的ANALYZE 7.5 format图像格式缺少一些信息,比如没有方向信息,病人的左右方位等,如果需要包括额外的信息,就需要一个额外的文件,比如ANALYZE 7.5就需要一对<.hdr, .img>文件来保存图像的完整信息。因此,解决这个问题Data Format Working Group (DFWG) 将图像格式完整的定义为NIFTI格式。
详细了解NIFTI格式请参见: https://brainder.org/2012/09/23/the-nifti-file-format/

2 读取NIFTI格式图像

2.1 ITK-SNAP

推荐ITK-SNAP下载地址:http://www.itksnap.org/pmwiki/pmwiki.php?n=Downloads.SNAP3
在这里插入图片描述

可以看到:itk-snap获得了分别来自三个角度的视图(水平面、矢状面、冠状面)在这里插入图片描述

2.2 itkwidgets

详细请参见:https://pypi.org/project/itkwidgets/
在这里插入图片描述
在这里插入图片描述

2.3 simpleITK

这是使用最多的一种图像处理工具

import SimpleITK as sitk
from matplotlib import pyplot as plt


def showNii(img):
    for i in range(img.shape[0]):
        print(i)
        plt.imshow(img[i, :, :], cmap='gray')
        plt.show()


itk_img = sitk.ReadImage('./data/00_img.nii.gz')
img = sitk.GetArrayFromImage(itk_img)
print(img.shape)  # (88, 132, 175)表示各个维度切片的数量
showNii(img)

在这里插入图片描述

2.4 Nibabel

import matplotlib

matplotlib.use('TKAgg')
from matplotlib import pylab as plt
import nibabel as nib
from nibabel import nifti1
from nibabel.viewers import OrthoSlicer3D

example_filename = './data/00_img.nii.gz'
img = nib.load(example_filename)
print('img:\n', img)
print('img.header:\n', img.header['db_name'])  # 输出头信息

# 由文件本身维度确定,可能是3维,也可能是4维
width, height, queue = img.dataobj.shape
print(width, height, queue)  # 175 132 88

OrthoSlicer3D(img.dataobj).show()

num = 1
for i in range(0, queue, 11):
    img_arr = img.dataobj[:, :, i]
    plt.subplot(2, 4, num)
    plt.imshow(img_arr, cmap='gray')
    num += 1
plt.show()

在这里插入图片描述

参考文献

  1. https://blog.csdn.net/qq_33254870/article/details/100125788
  2. https://blog.csdn.net/alxe_made/article/details/80512423
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐