python读取dicom图像示例(SimpleITK和dicom包实现)

 更新时间:2020年01月16日 17:15:03   作者:愿十四亿神州尽舜尧  
今天小编就为大家分享一篇python读取dicom图像示例(SimpleITK和dicom包实现),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1. 用SimpleITK读取dicom序列:

import SimpleITK as sitk
import numpy as np
img_path='F:\\dataset\\pancreas\\Output\\thick\\original\\1'
mask_path='F:\\dataset\\pancreas\\Output\\thick\\groundtruth\\1'
 
reader = sitk.ImageSeriesReader()
img_names = reader.GetGDCMSeriesFileNames(img_path)
reader.SetFileNames(img_names)
image = reader.Execute()
image_array = sitk.GetArrayFromImage(image) # z, y, x
 
reader = sitk.ImageSeriesReader()
mask_names = reader.GetGDCMSeriesFileNames(mask_path)
reader.SetFileNames(mask_names)
mask = reader.Execute()
mask_array = sitk.GetArrayFromImage(mask) # z, y, x

2. 用dicom读取单张dicom图像并显示:

import dicom 
import pylab  
 
ds=dicom.read_file("F:\\dataset\\pancreas\\Output\\thick\\groundtruth\\1\\FILE0001_seg.dcm")  
pixel_bytes = ds.PixelData 
 
##CT值组成了一个矩阵 
pix = ds.pixel_array 
 
##读取显示图片 
pylab.imshow(ds.pixel_array, cmap=pylab.cm.bone) 
pylab.show() 
如果要对dicom图像中的像素值进行修改,继续执行以下代码:

##修改图片中的元素,不能直接使用data_array,需要转换成PixelData 
for n,val in enumerate(ds.pixel_array.flat): # example: zero anything < 300 
  if val < 300: 
    ds.pixel_array.flat[n]=0 
ds.PixelData = ds.pixel_array.tostring() 
ds.save_as("newfilename.dcm") 

3. 此外,用pydicom也可读取dicom图像

以上这篇python读取dicom图像示例(SimpleITK和dicom包实现)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python字符串下标与切片及使用方法

    python字符串下标与切片及使用方法

    这篇文章主要介绍了python字符串下标与切片及使用方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • python如何去除字符串两端的引号

    python如何去除字符串两端的引号

    这篇文章主要介绍了python如何去除字符串两端的引号问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 仅利用30行Python代码来展示X算法

    仅利用30行Python代码来展示X算法

    这篇文章主要介绍了仅利用30行Python代码来展示X算法,同时还有对算法实现的复杂度的说明,需要的朋友可以参考下
    2015-04-04
  • 浅谈DataFrame和SparkSql取值误区

    浅谈DataFrame和SparkSql取值误区

    今天小编就为大家分享一篇浅谈DataFrame和SparkSql取值误区,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python编写绘图系统之从文本文件导入数据并绘图

    Python编写绘图系统之从文本文件导入数据并绘图

    这篇文章主要为大家详细介绍了Python如何编写一个绘图系统,可以实现从文本文件导入数据并绘图,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-08-08
  • 在Python中使用filter去除列表中值为假及空字符串的例子

    在Python中使用filter去除列表中值为假及空字符串的例子

    今天小编就为大家分享一篇在Python中使用filter去除列表中值为假及空字符串的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python自然语言处理库之NLTK库初级教程

    Python自然语言处理库之NLTK库初级教程

    NLTK(Natural Language Toolkit)是一个Python库,用于实现自然语言处理(NLP)的许多任务,NLTK包括一些有用的工具和资源,如文本语料库、词性标注器、语法分析器等,在这篇初级教程中,我们将了解NLTK的基础功能,需要的朋友可以参考下
    2023-08-08
  • python中is与双等于号“==”的区别示例详解

    python中is与双等于号“==”的区别示例详解

    Python中有很多运算符,下面这篇文章主要给大家介绍了关于python中is与双等于号“==”区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • python 自动监控最新邮件并读取的操作

    python 自动监控最新邮件并读取的操作

    这篇文章主要介绍了python 自动监控最新邮件并读取的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 如何使用Python自动生成报表并以邮件发送

    如何使用Python自动生成报表并以邮件发送

    这篇文章主要介绍了如何使用Python自动生成报表并以邮件发送,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-10-10

最新评论