zoukankan      html  css  js  c++  java
  • [网摘][医学影像] DICOM 和 NIFTI 基础知识与区别

    查找DICOM基础知识时,看到这篇文章里面写了一些关于使用深度学习进行医疗影像分析:文件格式篇。下文摘自:https://www.jiqizhixin.com/articles/2017-07-31

    医疗数据组成:

    医疗数据有四个关键的组成部分--像素深度、光度解释、元数据以及像素数据。这几部分决定了图像的大小和分辨率。 

    像素深度(Pixel Depth)或者位深度(Bit Depth)或者色深度(Color Depth)就是用来编码每一像素的信息所用的位数。例如,一个 8 位的栅格会拥有从 0 到 255 这 256 种各不相同的数值。

    光度解释具体化了像素数据被解释成正确的图片展示的方式,如单色图像或者彩色图像。为了确定像素值中是否存储了彩色信息,我们引入了每个像素的样本的概念,也就是大家都知道的通道数量。单色图像每个像素只有一个样本,图片中并没有存储彩色信息。我们使用从黑色到白色的灰度级别来展示这种图片。灰度的数量明显取决于用来存储这个样本的位数,在这种情况下,与像素深度是一致的。像 X 光片、CT 和磁共振这样的放射医疗影像都有一个灰度光度解释。核医学图像都以彩色的形式展现,例如 PET 和 SPECT。

    元数据就是图片中所描述的信息。它看上去可能是很奇怪的,但是无论在什么格式的文件中,都存在一些超越像素数据并且和图像相关的信息。这类被称作元数据的信息通常都以头部的形式储在文件的起始部分,它至少会包含以下信息:图像矩阵的维度、空间精度、像素深度以及光度解释。

    像素数据--这里存储的是像素数值的大小。根据不同的数据类型,像素数据可能以整型或者浮点型的类型存储,使用表达数据所需的最少的数据位。 

    所以,图像的大小=头部大小(包含元数据)+行×列×像素深度×帧的数量

    医疗图像的格式

    放射生物图像中主要有六种格式--DICOM(医疗中的数字图像和通信),NIFTI(神经影像学信息技术计划),PAR/REC(飞利浦 MRI 扫描格式),ANALYZE(Mayo 医疗成像)以及 NRRD(近乎原始光栅数据)和 MNIC 格式。

    其中 DICOM 和 NIFTI 是最常用的格式。

    DICOM 格式的基本知识

    DICOM 代表的是医疗数字成像和通信。DICOM 是由美国国家电气制造商协会(NEMA)制定的标准。它定义了医疗成像领域中关于信息处理、存储、打印以及传输的标准。这些都是你在扫描仪或者某家医院的图片归档和通信系统(PACS)能够立即得到的文件格式。

    它包括了文件格式和能够接收图像和 DICOM 格式的病人数据的实体之间使用 TCP/IP 进行通信的协议。

    一个 DICOM 文件包含文件头部和同文件名的*.dcm 图像数据。文件头部的大小取决于它所提供的信息的多少。文件头包含以下信息:病人的 ID,病人的姓名,图像的模态以及其他信息。它定义了帧的数量以及图像的精度。这些信息会被图像浏览器在显示图像时用到。对于一个单词采样,会有很多个 DICOM 文件。

    NIFTI 格式基本知识

    Nifti 格式最初是为神经影像学发明的。神经影像信息学技术计划(NIFTI)将 NIfTI 格式预设为 ANALYZE7.5 格式的替代品。它最初的应用领域是神经影像,但是也被用在其他领域。这种格式的主要特点就是它包含两个能够将每个体素的索引(i,j,k)和它的空间位置(x,y,z)关联起来的仿射坐标。

    nibabel 是一个能够读取 nifti 文件的 Python 库,oro.nifti 是一个能够读取 nifti 文件的 R 语言库。

    DICOM 和 NIFTI 的区别

    DICOM 和 NIfTI 这两种格式的主要区别是:NIfTI 中的图像原始数据被存储成了 3 维图像,而 dicom 一些 2 维的图层。这就使得 NIFTI 更加适合那些应用在 DICOM 上的机器学习的方法,因为它是以 3D 图像建模的。处理一个单独的 NIFTI 文件要比处理成百上千个 dicom 文件更加容易一些。与 DICOM 格式下的好多个文件相比,NIFTI 格式下,每个 3d 图像只有两个文件。

    其他更多详细信息,可以继续参考https://www.jiqizhixin.com/articles/2017-07-31阅读。

  • 相关阅读:
    学习日记-- 动态性。动态编译,静态方法,包装类
    第一周学习所获———ORM,数据持久化,通过注解来实现数据持久化框架
    第一周学习所获--class类1(反射和类加载过程)
    各种命名规范
    用easyui,json,纯mvc实现一个系统的数据流动过程
    js+bootstrap实现分页页码
    Echarts简单案例
    bootstrap日期控件(双日期、清空等问题解决)
    三种方法实现调用Restful接口
    Spring MVC异常处理 和 重定向传递数据
  • 原文地址:https://www.cnblogs.com/haochuang/p/7727743.html
Copyright © 2011-2022 走看看