医学影像人工智能实战(一):医学图像格式(nii和dicom)

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:917b00b9-347c-41a0-a9bf-057a418355d4

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:f9d9cd11-dd79-421e-bc1d-bfffa145273a

医疗数据的组成

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:9196c2f3-3d4c-4982-8d27-432dab18d259

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:fd8045c6-4cec-4380-a66f-79a07461d8d4

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

医学影像人工智能实战(一):医学图像格式(nii和dicom)

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

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

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

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

医疗图像的格式

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

DICOM 格式的基本知识

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

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

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

医学影像人工智能实战(一):医学图像格式(nii和dicom)
pydicom 是一个读取 dicom 文件的 python

NIFTI 格式基本知识

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

DICOM 和 NIFTI 的区别

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

格式转换

dicom 转换成 NIFTI

dicom2nii是一个用来把 DICOM 转换为 NIFTI 的工具。nibabel 是一个读写 nifiti 文件的 python 库。如果你你想把 DICOM 转换成 NIFTI,可以使用自动转换的工具(例如,dcm2nii)。python2 下的库 dcmstack 可以将一系列的 DICOM 文件堆叠成多维数组。这些数组能够被写成 NIFTI 的文件,同时还加上一个可选的头部扩展,这个头文件包含原始 DICOM 文件的所有元数据。python3 提供了一个新的用来完成这个格式转换的库–dicom2nifti。我建议读者去查看一下 nipy 这个项目。
也可以使用python读取dicom文件后转换为nii文件

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:e699eca8-c690-47f0-8ef1-0ce6b29b1243

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:dbe8aeb2-ac60-459f-ae8f-81da8405ce33

nii详解

nii基础

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

医学影像人工智能实战(一):医学图像格式(nii和dicom)

这部分数据长度是固定的,当然不同版本可能规定的长度不同,但是同一版本的多个nii文件是相同的。
header里包含的信息有:
–维度,x,y,z,单位是毫米。还有第四个维度,就是时间。这部分储存的主要是四个数字。
–voxel size(体素大小):毫米单位的x,y,z大小。(也就是spacing)
–数据类型,一般是int16,这个精度不够,最好使用double类型。
–Form和转换矩阵,每一个Form都对应一个转换矩阵。(暂时不知道Form是什么)

Extension

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:38191a81-2f04-4770-ada0-e4b27b481ec5

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:ee3a0d56-29f9-4f28-94fb-6154ff07baa6

Image

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

坐标

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

医学影像人工智能实战(一):医学图像格式(nii和dicom)

体素

转换矩阵

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

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格式和nii.gz格式详解

Original: https://www.cnblogs.com/xyf9474/p/15752579.html
Author: 梅雨明夏
Title: 医学影像人工智能实战(一):医学图像格式(nii和dicom)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/563419/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 数据科学-pandas的分组和聚合

    目录 导入 分组和聚合 索引和复合索引 总结 导入 现在我们有一组关于全球星巴克店铺的统计数据,如果我想知道美国的星巴克数量和中国的哪个多,或者我想知道中国每个省份星巴克的数量的情…

    Python 2023年8月7日
    050
  • 语音特征:spectrogram、Fbank(fiterbank)、MFCC

    1.各种语音特征 语音特征用于语音识别和语音合成等。 语音特征有声谱图spectrogram、Fbank(fiterbank)、MFCC(Mel-frequency cepstra…

    Python 2023年10月24日
    058
  • Python专题系列

    推荐文章 很多小伙伴都发现了,用户自主「申请上首页」的按钮取消了,那博主们写的文章还有上首页曝光的机会吗?我们的回答是”当然有!!!”虽然我们取消了上首页申…

    Python 2023年5月24日
    083
  • 微信小程序 | 小程序开发

    🖥️ 微信小程序专栏:小程序开发 初级知识🧑‍💼 个人简介:一个不甘平庸的平凡人🍬✨ 个人主页:CoderHing的个人主页🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️👉 …

    Python 2023年9月16日
    051
  • Nodejs调用python的几种方案

    nodejs可以使用JavaScript进行后端应用开发,同时使用electron可以开发桌面应用,可以说是相当强大。如果要在nodejs中读取本地文件则可以使用fs模块进行,ff…

    Python 2023年8月15日
    050
  • 一文了解循环神经网络

    摘要:循环神经网络(RNN)可是在语音识别、自然语言处理等其他领域中引起了变革! 循环神经网络(RNN)可是在语音识别、自然语言处理等其他领域中引起了变革! 1 应用场景 循环神经…

    Python 2023年10月29日
    027
  • Linux——innode

    回顾缓冲区 标准错误流的理解 文件系统 Inode VS 文件名 创建/删除/查看文件系统做了什么 软硬链接 动静态库 回顾缓冲区 关掉1,log.txt中没文件是因为,字符串在缓…

    Python 2023年11月6日
    070
  • pandas DataFrame的行、列索引与条件过滤

    DataFrame的行、列索引 函数功能df.loc[val]根据 选择单行或多行df.iloc[where]根据 选择单行或多行df.loc[:,:]根据 选择多行多列[行,列]…

    Python 2023年8月28日
    045
  • 手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)

    今天我们一起来使用LabVIEW AI视觉工具包快速实现图像的滤波与增强;图像灰度处理;阈值处理与设定;二值化处理;边缘提取与特征提取等基本操作。工具包的安装与下载方法可见 有时候…

    Python 2023年10月20日
    068
  • 四种统计图代码

    Matplotlib 安装 本章节,我们使用 pip 工具来安装 Matplotlib 库,如果还未安装该工具,可以参考Python pip 安装与使用。 升级 pip: pyth…

    Python 2023年9月2日
    063
  • 小恐龙快跑,不要被逮到拉~ python制作小恐龙游戏

    前言 嗨喽~大家好呀,这里是魔王呐 ! 这个小恐龙熟悉叭,相信你在摸鱼得时候玩过它~ 这是谷歌流量器中很有名的彩蛋:当你网络出现问题时,就会出现一个”小恐龙游戏&#82…

    Python 2023年9月18日
    064
  • 攻防世界-shrine题分析

    shrine 题目分析 进入靶场后可以看见给出了源码,比较乱的话可以 ctrl+u查看源码: 进行代码审计可以发现,这个网页是用flask模板写的,这时就很容易就联想到flask模…

    Python 2023年8月14日
    080
  • python处理excel和csv文件基础非常详细

    import pandas as pd 读取第一个sheet所有数据 df = pd.read_excel("data_info.xlsx", sheet_na…

    Python 2023年8月21日
    038
  • python-坦克大战游戏项目

    ”’尚学堂学习笔记,用于复习”’ 一.下载pygame,在cmd输入命令pip install pygame(也可以直接在pycha…

    Python 2023年9月18日
    048
  • python2 之 DataFrame

    1. 拼接: a. concat: pd.concat(axis=0,在下方;axis=1,在右方) eg:adfoutputexpand=pd.concat([a1,b1,c1,…

    Python 2023年8月16日
    061
  • Django笔记(2)

    实现通过表单提交数据到数据库,模拟账号注册和登录 项目结构: 1:在templates/polls目录下创建登陆页面的html文件,这里的文件名为:login.html,内容为: …

    Python 2023年8月6日
    055
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球