跳转至

医学影像文件常见格式

医学图像是反映解剖区域内部结构或内部功能的图像,它是由一组图像元素——像素(2D)或立体像素(3D)组成的。 医学图像是由采样或重建产生的离散性图像表征,它能将数值映射到不同的空间位置上。像素的数量是用来描述某一成像设备下的医学成像的, 同时也是描述解剖及其功能细节的一种表达方式。像素所表达的具体数值是由成像设备、成像协议、影像重建以及后期加工所决定的。

Analyze

简介

Analyze格式储存的每组数据组包含2个文件,一个为数据文件,其扩展名为.img,包含二进制的图像资料;另外一个为头文件,扩展名为.hdr, 包含图像的元数据

NIFTI

简介

标准NIFTI图像的扩展名是.nii,也包含了头文件及图像资料。由于NIFTI格式和Analyze格式的关系,因此NIFTI格式也可使用独立的图像文件(.img)和头文件(.hdr)。 可以使用ITK-SNAP软件打开查看。NIFTI格式主要是为了克服以前数据格式问题而引入的,先前格式的主要问题可能是缺乏有关空间方向的足够信息, 以致于不能明确解释存储的数据。尽管该文件被许多不同的成像软件所使用,但是缺少足够的方向信息,某些(尤其是spm)必须为每个分析文件 包括一个描述方向的随附文件,例如带有扩展名的文件.mat

数据读取

读取.nii.gz文件获取三维视角

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

example_filename = './fixed.nii.gz'
img = nib.load(example_filename)
OrthoSlicer3D(img.dataobj).show()
img.png img_1.png

读取.nii.gz文件获取水平切面图

#查看和显示nii.gz文件

import matplotlib
matplotlib.use('TkAgg')
from matplotlib import pylab as plt
import nibabel as nib

example_filename = './fixed.nii.gz'
img = nib.load(example_filename)
width, height, queue = img.dataobj.shape
num = 1
for i in range(0, queue, 8):
    img_arr = img.dataobj[:, :, i]
    plt.subplot(5, 4, num)
    plt.imshow(img_arr, cmap='gray')
    num += 1

plt.show()
img_2.png

DICOM

简介

DICOM(Digital Imaging and Communications in Medicine)是指医疗数字影像传输协定,是用于医学影像处理、储存、 打印、传输的一组通用的标准协定。它包含了文件格式的定义以及网络通信协议。DICOM是以TCP/IP为基础的应用协定, 并以TCP/IP联系各个系统。两个能接受DICOM格式的医疗仪器间,可通过DICOM格式的文件,来接收与交换影像及病人资料。 DICOM格式的文件可以使用MicroDicom软件打开。一个Dicom文件包含了基本的病人信息以及图像信息。 病人信息包括病人ID、姓名、检查日期、检查时年龄等。图像数据包括数据位数、符号位、宽高等。

评论