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


Posted in Python onJanuary 16, 2020

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 相关文章推荐
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
May 03 Python
Python入门学习指南分享
Apr 11 Python
在python中只选取列表中某一纵列的方法
Nov 28 Python
python使用插值法画出平滑曲线
Dec 15 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
python判断文件夹内是否存在指定后缀文件的实例
Jun 10 Python
Python几种常见算法汇总
Jun 02 Python
Python实现快速大文件比较代码解析
Sep 04 Python
Python fileinput模块如何逐行读取多个文件
Oct 05 Python
python 自动刷新网页的两种方法
Apr 20 Python
Python序列化模块JSON与Pickle
Jun 05 Python
.dcm格式文件软件读取及python处理详解
Jan 16 #Python
用python解压分析jar包实例
Jan 16 #Python
Python3 实现爬取网站下所有URL方式
Jan 16 #Python
python3爬取torrent种子链接实例
Jan 16 #Python
Python 实现自动获取种子磁力链接方式
Jan 16 #Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 #Python
Python简单实现区域生长方式
Jan 16 #Python
You might like
程序员编程十条戒律
2009/07/09 PHP
php算开始时间到过期时间的相隔的天数
2011/01/12 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
继续学习javascript闭包
2015/12/03 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
在Django中限制已登录用户的访问的方法
2015/07/23 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
jupyter notebook实现显示行号
2020/04/13 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
生产现场禁烟通知
2015/04/23 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript