Nifti
- 全称Neuroimaging Informatics Technology Initiative
- 是一种专为存储医学和神经影像数据而设计的文件格式。
- 设计目的是高效的存储三维或四维图像数据,同时将相关的元数据紧凑地嵌入文件中。
- Nifti文件的组成:头信息(元数据)和图像数据。
- Nifti文件的拓展名:
.nii
:单文件模式,将头信息(元数据)(metadata)和图像数据(image data)存储在同一文件中。.nii.gz
:是.nii
文件的压缩版,通常用于节省存储空间。
Nifti元数据中存着哪些数据?
-
我们可以通过
Cornerstone3D
中的volume
的metadata
属性,来查看元数据包含哪些属性。 -
console.log(volume.metadata);
{ "BitsAllocated": 32, //每个像素的存储位数。例如,32 表示每个像素使用 32 位存储。 "BitsStored": 32, //每个像素实际使用的有效位数。这里为 32,表示存储的像素数据为 32 位。 "SamplesPerPixel": 1, //每个像素的采样值个数。1 表示灰度图像(单通道);如果是彩色图像,这个值可能为 3 或更高。 "HighBit": 31, //数据的最高有效位索引。值为 31,意味着有效数据占用 32 位(从 0 到 31)。 "PhotometricInterpretation": "MONOCHROME2", //光度解释,图像的像素值解释方式,决定了像素值与灰度级的关系。 "PixelRepresentation": 1, //像素值的格式:0为无符号整数,1为有符号整数。 "ImageOrientationPatient": [ // 图像方向,图像相对于患者身体的方向。 1, 0, 0, 0, -1, 0 ], "PixelSpacing": [ //像素间距,图像中每个像素的实际大小,数组 [1, 1] 表示像素在水平方向和垂直方向的物理尺寸都是 1 mm。 1, 1 ], "FrameOfReferenceUID": "1.2.840.10008.1.4", "Columns": 166, //图像的宽度,表示图像的尺寸 "Rows": 179, //图像的高度,表示图像的尺寸 "voiLut": [ //窗口电平 LUT {} ] }
-
图像解析和存储:
- 元数据如
BitsAllocated
和PixelRepresentation
等确定图像的存储方式。
- 元数据如
-
空间定位和缩放:
PixelSpacing
和ImageOrientationPatient
用于重建图像与患者身体实际解剖结构之间的关系。
-
显示方式:
PhotometricInterpretation
和voiLut
用于指导图像显示(灰度或对比调整)。
-
多序列配准:
FrameOfReferenceUID
确保多模态数据(如 CT 和 MRI)在同一坐标系中对齐。