查找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阅读。

[网摘][医学影像] DICOM 和 NIFTI 基础知识与区别的更多相关文章

  1. 01慕课网《vue.js2.5入门》——基础知识

    前端框架 Vue.js2.5 2018-05-12 Vue官网:https://cn.vuejs.org/ 基础语法+案例实践+TodoList+Vue-cli构建工具+TodoList Vue基础语 ...

  2. 基于cornerstone.js的dicom医学影像查看浏览功能

    最近由于项目需求,需要医学影像.dcm文件的预览功能,功能完成后,基于原生Demo做一个开源分享. 心急的小伙伴可以先看如下基于原生js的全部代码: 一.全部代码 <!DOCTYPE html& ...

  3. 使用医学影像开源库cornerstone.js解析Dicom图像显示到HTML中

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. AI+医疗:使用神经网络进行医学影像识别分析 ⛵

    作者:韩信子@ShowMeAI 计算机视觉实战系列:https://www.showmeai.tech/tutorials/46 行业名企应用系列:https://www.showmeai.tech/ ...

  5. 医学影像工作站程序ProDicom的说明

    转载 http://blog.csdn.net/prodicom/article/details/4015064 注意:以下内容为转载,但保留了第一人称,请注意,以免造成不必要的麻烦. 医网联影像工作 ...

  6. TCP/IP协议头部结构体(网摘小结)(转)

    源:TCP/IP协议头部结构体(网摘小结) TCP/IP协议头部结构体(转) 网络协议结构体定义 // i386 is little_endian. #ifndef LITTLE_ENDIAN #de ...

  7. 释放至强平台 AI 加速潜能 汇医慧影打造全周期 AI 医学影像解决方案

    基于英特尔架构实现软硬协同加速,显著提升新冠肺炎.乳腺癌等疾病的检测和筛查效率,并帮助医疗科研平台预防"维度灾难"问题 <PAGE 1 LEFT COLUMN: CUSTOM ...

  8. Feedly订阅Blog部落格RSS网摘 - Blog透视镜

    网络信息爆炸的时代,如何更有效率地阅读文章,订阅RSS网摘,可以快速地浏览文章标题,当对某些文章有兴趣时,才点下连结连到原网站,阅读更详细的文章,Feedly Reader阅读器除了提供在线版订阅RS ...

  9. Bloglines订阅Blog部落格RSS网摘 - Blog透视镜

    网络信息蓬勃发展,Blog部落格越来越普及,如果逐一地去浏览网站,势必费时费力,倘若信息可以自己送上门,那就可以节省不少时间,就好像看报纸的标题,有兴趣才点连结,进到网站浏览文章内容,Blogline ...

随机推荐

  1. 项目从.NET 4.5迁移到.NET 4.0遇到的问题

    当把项目从.NET 4.5迁移到.NET 4.0时,遇到的问题和解决如下: 在"属性--应用程序--目标框架"设置成.NET 4.0版本. 重新生成项目,报有关EF的错: 卸载掉项 ...

  2. U盘装win7系统

    首先在互联网下载UltraISO光盘映像文件制作/编辑/格式转换工具,(当然还有其它如WinISO.WinImage.Daemon Tools等)然后在准备一个4GB容量以上(含4GB)的优盘或者移动 ...

  3. 基于CentOS的MySQL学习补充三--使用Shell批量创建数据库表

    本文出处:http://blog.csdn.net/u012377333/article/details/47006087 接上篇介绍<基于CentOS的Mysql学习补充二--使用Shell创 ...

  4. 一篇linux的通讯文章

    今年的linux内核开发大会上,google的开发人员也上台做了名为“how google use linux”的演讲.我斗胆翻译注解一番――括号内为注解,欢迎读者斧正. 原文链接参见:http:// ...

  5. Java判断多个时间段是否重叠(重叠区间个数)

    import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * 判断多个时间段是否出现重叠 ...

  6. 解决org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource

    spring中做成bean,可以使用property"resourceLoaderPath"指定工程中的路径 <bean id="velocityEngine&qu ...

  7. Android实现图片裁剪

    MainActivity.java package com.kale.imagetailor; import java.io.File; import java.io.FileNotFoundExce ...

  8. shell单引号与变量、双引号与变量、如何在多重引号里面取到shell变量的值?

    如何在多重引号里面取到shell变量的值? 双引号是不会屏蔽对变量和某些特殊符号的转义的,而单引号里的所有内容都会原封不动的输出,而单引号里再用单引号将变量引起来,变量就又可以正常的显示,有点像数学里 ...

  9. 洛谷P1972 [SDOI2009]HH的项链 题解

    [SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不 ...

  10. 【VC++积累】之八、PreTranslageMessage;TranslageMessage;GetMessage和PeekMessage的区别

    先来看windows消息机制: 首先系统(也就是windows)把来自硬件(鼠标,键盘等消息)和来自应用程序的消息 放到一个系统消息队列中去. 而应用程序需要有自己的消息队列,也就是线程消息队列,每一 ...