nii基础

大部分医学领域导出dicom格式,但是太复杂了。很多时候,将dicom转换为nifti格式也就是nii格式。
在这里插入图片描述
一个NIFTI格式主要包含三部分:hdr,ext,img。

hdr/header

这部分数据长度是固定的,当然不同版本可能规定的长度不同,但是同一版本的多个nii文件是相同的。
header里包含的信息有:

  • 维度,x,y,z,单位是毫米。还有第四个维度,就是时间。这部分储存的主要是四个数字。
  • voxel size(体素大小):毫米单位的x,y,z大小。
  • 数据类型,一般是int16,这个精度不够,最好使用double类型。
  • Form和转换矩阵,每一个Form都对应一个转换矩阵。暂时不知道Form是什么。

Extension

是自己可以随意定义数据的部分,可以自己用。但是通用的软件公司都无法使用这部分。

Image

储存3D或者4D的图像数据

坐标

dicom和nii格式定义了不同的方向,对于nii格式,坐标原点在大脑中某个部位上,方向可以从图上看出。
在这里插入图片描述

体素

转换矩阵

转换矩阵可以轻松分清图像的左右。转换矩阵是一个4X4的矩阵,作用是将体素索引(i,j,k)转换为空间位置(x,y,z)。具体使用方法是转换矩阵乘以一个包含(i,j,k)的矩阵,就可以得到一个包含(x,y,z)的矩阵。
转换矩阵用到了一些概念,在dicom格式上也是一样的。

转换矩阵内部参数概念

通过下图来理解这几个概念:
在这里插入图片描述

Related DICOM tags:

  • ImageOrientionPatient:[1 0 0 0 1 0]
    • 这个ImageOrientionPatient是一个行向量,主要有6个元素。前三个元素[1 0 0]是图中的c向量,后三个元素[0 1 0]图中的r向量,定义了这个切片图的长和宽的方向。对应于转换矩阵的顺序是[r_x r_y r_z v_x v_y v_z]
  • ImagePositionPatient:[-100 -120 -40.2]
    • 三个元素,x,y,z定义了切片图的坐标顶点。
      ImageOrientionPatient和ImagePositionPatient定义了这个图的位置。
  • PixelSpacing:[3 3]
    • ImageOrientionPatient定义了长宽的方向,但是没有定义大小。对应于转换矩阵的顺序是[v_c v_r]
  • SpaceBetweenSlices(SliceThickness):3
    • 厚度,这个切片总共有多厚。

转换矩阵组成

在这里插入图片描述
通过上面参数的介绍,我们知道了转换矩阵的第一,二列的参数来源,第三列中的n表示切片厚度,x_n就表示第n个切片的顶点的空间坐标。这个矩阵最后一行是[0 0 0 1]的常数。

转换矩阵应用

转换矩阵乘以一个包含(i,j,k)的矩阵,就可以得到一个包含(x,y,z)的矩阵。
在这里插入图片描述
将体素坐标[i j k]转换为[x y z]

资源

nii格式

后缀名为.nii的文件格式又叫NIfTI-1,它改编自广泛使用的ANALYZE™7.5格式。一些比NIfTI-1发展早的老软件也可以兼容NIfTI-1。 比ANALYZE 7.5新的特性如下:

  • 将体素索引(i,j,k)与空间位置(x,y,z)相关的仿射坐标定义
  • 表示FMRI(核磁共振)的时空切片顺序的代码;
  • “完整”的8-128位数据类型集;
  • 在1-4维域上存储矢量值数据集的标准化方法;
  • 表示数据“含义”的代码;
  • 向标头添加“扩展”数据的标准化方法;
  • 双文件(.hdr和.img)或单文件(.nii)存储;

还有很多。 目的是在FMRI数据分析软件包之间的文件交换级别上促进互操作性。 AFNI,BrainVoyager,FSL和SPM的作者都致力于支持这种格式的输入和输出。
注意:该规范现在称为NIfTI-1.1。

nii官网介绍

最后

做医学影像开发的人没那么多,学习的路上难免遇到困难,如果看到文章的你希望有伙伴陪你一起行动!
请大胆来找我,让我们一起交流!
公众号名称:三丰杂货铺

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐