打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python中利用SimpleITK读取DICOM文件 - 简书

Williamongh关注

0.122018.08.20 10:43:53字数 90阅读 8,297

有帮助的话请点赞收藏,谢谢

当同一文件夹下有多个DICOM序列时:

import osimport SimpleITK as sitkreader = sitk.ImageSeriesReader()seriesIDs = reader.GetGDCMSeriesIDs(dcm_dir)dcm_series = reader.GetGDCMSeriesFileNames(dcm_dir, seriesIDs[0])reader.SetFileNames(dcm_series)img = reader.Execute()img_array = sitk.GetArrayFromImage(img) # z, y, xorigin = img.GetOrigin() # x, y, zspacing = img.GetSpacing() # x, y, z

当文件夹下只有一个DICOM序列时,可以简化为:

import SimpleITK as sitkimport numpy as npreader = sitk.ImageSeriesReader()dcm_series = reader.GetGDCMSeriesFileNames(dcm_dir)   reader.SetFileNames(dcm_series)img = reader.Execute()img_array = sitk.GetArrayFromImage(img) # z, y, xorigin = img.GetOrigin() # x, y, zspacing = img.GetSpacing() # x, y, z

有时会出现跳层的问题,编写了个函数来happy safe reading

def safe_sitk_dcm_read(dcm_dir, *args, **kwargs):    dcm_list = [os.path.join(dcm_dir, i) for i in os.listdir(dcm_dir)]    indices = np.array([pydicom.dcmread(i).InstanceNumber for i in dcm_list])    dcm_list = np.array(dcm_list)[indices.argsort()[::-1]]    return sitk.ReadImage(dcm_list, *args, **kwargs)

Reference:
https://github.com/SimpleITK/SimpleITK/issues/436
http://www.yueye.org/2017/python-simpleitk-read-process-dicom.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
对python读取CT医学图像的实例详解
使用Python对医学Dicom文件的预处理(含代码)
影像神探社黑科技——带您进入手机浏览DICOM图像时代
图片(jpg,png,tif等)批量转dicom(dcm)格式
fmri数据分析图像格式及转换问题
dcm2260说明书.pdf
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服