使用python玩转dicom文件——医学图像处理工具pydicom入门教程
从医院采集的超声数据因为时间跨度大、设备差异等原因比较乱,想着找找工具怎么把这些dicom格式的文件整理一下,于是瞄准了pydicom这一工具。中文资料也很鱼龙混杂,干脆自己去他们的官方文档直接学习。安装方式是很简单的在anaconda中pip install pydicom
参考资料:pydicom官方文档
版本:pydicom 2.0.0
pydicom入门
- 数据读取
- 信息获取
- 数据写入
- 使用matplotlib进行可视化
数据读取
数据读取使用dmread()
import pydicomfpath='us13.DCM'
dcm=pydicom.dcmread(fpath)
有时可能会出现以下报错
raise InvalidDicomError("File is missing DICOM File Meta Information "pydicom.errors.InvalidDicomError: File is missing DICOM File Meta Information header or the 'DICM' prefix is missing from the header. Use force=True to force reading.
这是由于dicom文件中信息缺失造成的或者此文件不是dicom文件但包含了dicom数据,在确信此文件包含dicom数据的情况下根据提示应该调用force参数强行读取。
dcm=pydicom.dcmread(fpath,force=True)
信息获取
在完成上述的dicom文件读取后可以使用print指令打印出其头文件信息
import pydicomfpath='us13.DCM'
dcm=pydicom.dcmread(fpath)
print(dcm)
输出结果部分截图
数据写入
最简单的方式可以采用sace_as()
进行数据保存
dcm.save_as('out.dcm')
在默认情况下,save_as()
是以原样的方式将数据写入文件中。这意味着,即使你的数据集不符合DICOM文件格式,也仍将严格按照给定的格式进行写入。要确定您是以DICOM文件格式编写数据集,可以使用write_like_original
关键字参数:
dcm.save_as('out.dcm', write_like_original=False)
以上操作将自动的添加文件中缺失的头文件信息,如果没能成功自动补全的话将会报错
ValueError: Missing required File Meta Information elements from 'file_meta':(0002, 0010) TransferSyntaxUID
这时需要手动进行补全相关信息,再进行保存
dcm.file_meta = FileMetaDataset()
dcm.file_meta.TransferSyntaxUID = '1.2.840.10008.1.2.1'
dcm.save_as('out.dcm', write_like_original=False)
使用matplotlib进行可视化
import pydicom
from matplotlib import pyplot as pltfpath='US6.DCM'
dataset=pydicom.dcmread(fpath)if 'PixelData' in dataset:rows = int(dataset.Rows)cols = int(dataset.Columns)print("Image size.......: {rows:d} x {cols:d}, {size:d} bytes".format(rows=rows, cols=cols, size=len(dataset.PixelData)))if 'PixelSpacing' in dataset:print("Pixel spacing....:", dataset.PixelSpacing)plt.imshow(dataset.pixel_array, cmap=plt.cm.bone)
plt.show()
使用python玩转dicom文件——医学图像处理工具pydicom入门教程相关推荐
- 用python玩转办公软件(pandas数据分析)入门
用python玩转办公软件(pandas数据分析)入门 文章目录 用python玩转办公软件(pandas数据分析)入门 1.pandas介绍 2.csv文件介绍 3.pandas常用操作csv (1 ...
- python中flush怎么用,在Python程序中操作文件之flush()方法的使用教程
在Python程序中操作文件之flush()方法的使用教程 flush()方法刷新内部缓冲区,像标准输入输出的fflush.这类似文件的对象,无操作. Python关闭时自动刷新文件.但是可能要关闭任 ...
- DICOM文件脱敏/修改工具
DICOM文件脱敏/修改工具 无聊,隔离,在家工作.疫情期间,你好好吗 下载地址 点击下载 外观 运行 这是一个Java GUI程序,发布的是一个jar文件. 可以使用java命令运行: java - ...
- qpython3绘图_比Excel制图更强大,Python可视化工具Altair入门教程
比 Excel 制图更强大,Python 可视化工具 Altair 入门教程 数据转化成更直观的图片,对于理解数据背后的真相很有帮助.如果你有这方面的需求,而且还在使用 Python,那么强烈推荐你试 ...
- python将医学图像dicom文件批量转换为avi视频格式
最近,做了一个批量转换格式带界面的插件,要求是把dicom格式的文件转换为avi视频格式的文件.查阅很多资料之后,完成了该任务. 首先,导入以下库,比如opencv.SimpleITK.numpy等 ...
- 干货整理!10个Python图像处理工具,入门必看,提效大法
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 在图像处理领域,一库在手,相当于天下已有.但是今天给大家推荐10个好用的库,快来看看有 ...
- 干货整理!10个Python图像处理工具,入门必看,提效大法 | 资源
原作:Parul Pandey 铜灵 编译整理 量子位 出品 | 公众号 QbitAI 在图像处理领域,一库在手,相当于天下已有. 最近,有一位搞数据科学的小姐姐Parul Pandey,整理了一份实 ...
- 【ANTs】医学影像处理工具ANTs安装教程 - 快速安装,即插即用,无需编译
[ANTs]医学影像处理工具ANTs - 即插即用的安装教程,无需编译 ANTs(Advanced Normalization Tools)是一个用于处理医学图像的先进工具集.ANTs 允许人们组织. ...
- python图表可视化工具_比Excel制图更强大,Python可视化工具Altair入门教程
原作者 Parul Pandey 晓查 编译整理 量子位 出品 | 公众号 QbitAI 数据转化成更直观的图片,对于理解数据背后的真相很有帮助.如果你有这方面的需求,而且还在使用Python,那么强 ...
- 比Excel制图更强大,Python可视化工具Altair入门教程
原作者 Parul Pandey 晓查 编译整理 量子位 出品 | 公众号 QbitAI 数据转化成更直观的图片,对于理解数据背后的真相很有帮助.如果你有这方面的需求,而且还在使用Python,那么 ...
最新文章
- opencl track资料整理
- 爬虫+数据分析,制作一个世界疫情人数增长动态柱状竞赛图
- element-ui中对话框dialog不显示,仅背景变灰
- 虚拟计算机用户权限分配,虚拟机实例的权限和安全配置
- web mis系统构建
- 【图论】最短路学习笔记
- python小结_Python小结
- 配置VS2008来Debug .Net框架源码
- 烦了,放弃卡巴——改用小红伞
- android日程源代码,android日程表实现---仿滴答清单
- 72个炫酷的CSS技巧
- Microsoft SQL Server 2000 简体中文企业版 +SP4升级补丁
- 从物联网到元宇宙-李正海在物联网大会上的发言
- 生信:2:sam格式文件解读
- PG数据库按照30分钟时间片统计数据
- 第四章第十节数据资产盘点-形成数据资产目录
- 机器学习——关联规则
- SQL查询表中重复数据
- KY59	神奇的口袋【和某题相同原理!!】
- Carla:ROS bridge installation for ROS 1