python 用SimpleITK+pydicom 将4dnii图像转为单张dicom,并重新添加图像头信息

最近在处理一套心脏数据,需要将4dnii图像转换成单张的dicom图像进行试验,看了很多博客,发现SimpleITK是一个处理医学图像的很好用的包,里面支持很多医学图像的读取以及处理,以及对图像头信息的查看及修改。首先,可以用sitk.ReadImage读取4dnii图像,如下:itk_img = sitk.ReadImage('E:/cardic_data/training/patie...
摘要由CSDN通过智能技术生成

最近在处理一套心脏数据,需要将4dnii图像转换成单张的dicom图像进行试验,看了很多博客,发现SimpleITK是一个处理医学图像的很好用的包,里面支持很多医学图像的读取以及处理,以及对图像头信息的查看及修改。

首先,可以用sitk.ReadImage读取4dnii图像,如下:

itk_img = sitk.ReadImage('E:/cardic_data/training/patient009/patient009_4d.nii.gz')#读取nii图像
img = sitk.GetArrayFromImage(itk_img)#获取图像array
print(img.shape)#查看图像形状
#获取图像头信息
keys = itk_img.GetMetaDataKeys()
print(keys)
for key in keys:
    print (key,':', itk_img.GetMetaData(key)

读取nii图像ndarray后,就可以numpy及切片将图像保存为单张dicom了:

simpleitk读取图像是按照(t,slice,height,width)读取的 我们可以用numpy转换成想要的形状,便于切片:

img = sitk.GetArrayFromImage(itk_img)
print(img.shape)
img =np.transpose(img,(1,0,2,3))
print(img.shape)
结果:
(35, 10, 256, 208)
(10, 35, 256, 208)
切片并保存:
import pydicom
import numpy as np
import Si
  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值