医学图像Dicom(.dcm)转换为NIFTI(.nii)格式

前言

NIfTI 中的图像原始数据一般被存储成了三维图像,而dicom存储为二维图层,所以相对于DICOM文件,NIFTI文件更加易用于机器学习,因为NIfTI 是三维图像,处理一个单独的NIfTI 文件要比处理成百上千个DICOM文件更加容易一些。

医学图像格式

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)关联起来的仿射坐标。

python代码

import numpy as np
import shutil
import os
import SimpleITK as sitk

def dcm2nii_sitk(path_read, path_save):
    reader = sitk.ImageSeriesReader()
    seriesIDs = reader.GetGDCMSeriesIDs(path_read)
    N = len(seriesIDs)
    lens = np.zeros([N])
    for i in range(N):
        dicom_names = reader.GetGDCMSeriesFileNames(path_read, seriesIDs[i])
        lens[i] = len(dicom_names)
    N_MAX = np.argmax(lens)
    dicom_names = reader.GetGDCMSeriesFileNames(path_read, seriesIDs[N_MAX])
    reader.SetFileNames(dicom_names)
    image = reader.Execute()
    if not os.path.exists(path_save):
        os.mkdir(path_save)
    sitk.WriteImage(image, path_save+'/data.nii.gz')

DICOMpath = r"F:\Dicomdataset"   #dicom文件夹路径
Midpath = r"F:\middataset"   #处理中间数据路径
Resultpath = r"F:\result"    #保存路径
cases = os.listdir(DICOMpath)  #获取dicom文件夹路径子文件夹名
for c in cases:  #遍历dicom文件夹路径子文件
    path_mid = os.path.join(DICOMpath , c)  #获取dicom文件夹下每一套数据的路径
    dcm2nii_sitk(path_mid , Midpath )  #将dicom转换为nii,并保存在Midpath中
    shutil.copy(os.path.join(Midpath , "data.nii.gz"), os.path.join(Resultpath , c + ".nii.gz"))
    #重新对保存后的nii文件名进行命名,并复制到Resultpath下
软件介绍: DcmTransform是一款专用的医学格式转换器,于对符合DICOM 3.0标准的医学图像文件。软件首先对DICOM文件中的数据进行解析,并将其以图像的样式显示。图像显示后,用户可以自定义地调节医学图像的窗位窗宽。由于医学图像数据的像素变化范围通常为0-4095或0-1023,不同于传统图像文件的0-255。而计算机所能显示的黑白像素范围是0-255,所以需要对医学图像进行像素值的映射处理,即调节医学图像的窗位窗宽。调节操作的作用在于改变显示图像的明暗度对比度。当用户调节好医学图像的窗位窗宽后,即可以对医学图像文件进行格式化。化的文件格式可设为BMP格式和JPG格式。用户亦可以根据自己的需要设置图像的属性信息,如图像的质量,大小。对于CT,MRI断层图像来说,通常拍摄得到的是一系列DICOM文件,该系列文件通常在同一个文件夹目录下。对于某一系列文件,由于拍摄中设备参数设置不变,其像素的变化范围,图像的明暗度饱和度基本相同,所以在图像化操作中,用户可以调节好窗位窗宽后,一次性的将系列文件全部化。对于DSA血管减影造影图像,也是需要拍摄一系列的图像,该系列图像通常保存在同一DICOM文件中。它借助计算机对血管造影图像进行数字图像处理,以消除背景的干扰,突出医生感兴趣的血管部分的信息。医学关心的并不是原始拍摄的图像信息,而是减影成像后的图像。所以本软件即可以将原始图像数据化成普通图像文件,也可以化减影成像后的图像DICOM文件是按照DICOM标准存储的医学文件,它不仅可以用来封装各种医学图像,也可以封装其它医学信息,如病人姓名,性别,拍摄单位、设备参数等。这类资料保存在DICOM文件的文件头中,DICOM文件头包含了标识数据集合的相关信息。DICOM文件一般由1个DICOM文件头和1个DICOM数据集合组成。在对DICOM文件处理过程序中,亦需要对其文件头进行解析,得到图像的相关信息。本软件可以将解析后的文件头保存为TXT文本文件,以便于查看。本软件还为用户提供了普通图像文件浏览的功能,以便于用户化完DICOM文件后,查看化效果。图像浏览时,先列出所有化后图像的缩略图,用户点击任意一幅缩略图即可打开该图像
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值