学习记录:医学图像DICOM文件与NIFTI文件的转化

功能说明:将DICOM格式的文件(以下简称dcm文件)转化为NIFTI格式的文件(以下简称nii文件)。

其中,医院拿到的dcm文件又分为不同的图像(T1  T2  DWI  ADC等),读取dcm文件后,需要读取其中信息,判断其图像类型,选择需要的dcm图像,并转化为nii文件。

读取信息可通过pydicom 读取data后,通过data.data_element获取信息:

import pydicom 

filepath = "./T2"
data = pydicom.dcmread(filepath+'/000000.dcm') #读取一张dcm文件\
print(data.data_element)

 打印结果:

 

转化通过python的库SimpleITK读取dcm文件,再通过sitk.WriteImage(dcm_image, "filename.nii.gz")保存为nii

import SimpleITK as sitk

'''
功能:读取filepath下的dcm文件
返回值:读取得到的SimpleITK.SimpleITK.Image类   


其他说明:  file = sitk.ReadImage(filepath)
            获取基本信息,大小,像素间距,坐标原点,方向
            file.GetSize()
            file.GetOrigin()
            file.GetSpacing()
            file.GetDirection()
'''
def readdcm(filepath):
   #filepath = "./T2"
    series_id = sitk.ImageSeriesReader.GetGDCMSeriesIDs(filepath)
    series_file_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(filepath, series_id[0])
    series_reader = sitk.ImageSeriesReader() #读取数据端口
    series_reader.SetFileNames(series_file_names)  #读取名称
    images = series_reader.Execute()#读取数据
    #print(images.GetSpacing())
    #sitk.WriteImage(images, "T2_1.nii.gz")#保存为nii
    return images


if __name__ == '__main__':
    filepath =  "./dcm"  #保存路径
    dcm_images = readdcm(filepath)   #读取文件
    sitk.WriteImage(dcm_images, "dcm.nii.gz")#保存为nii

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值