从医院采集的超声数据因为时间跨度大、设备差异等原因比较乱,想着找找工具怎么把这些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入门教程相关推荐

  1. 用python玩转办公软件(pandas数据分析)入门

    用python玩转办公软件(pandas数据分析)入门 文章目录 用python玩转办公软件(pandas数据分析)入门 1.pandas介绍 2.csv文件介绍 3.pandas常用操作csv (1 ...

  2. python中flush怎么用,在Python程序中操作文件之flush()方法的使用教程

    在Python程序中操作文件之flush()方法的使用教程 flush()方法刷新内部缓冲区,像标准输入输出的fflush.这类似文件的对象,无操作. Python关闭时自动刷新文件.但是可能要关闭任 ...

  3. DICOM文件脱敏/修改工具

    DICOM文件脱敏/修改工具 无聊,隔离,在家工作.疫情期间,你好好吗 下载地址 点击下载 外观 运行 这是一个Java GUI程序,发布的是一个jar文件. 可以使用java命令运行: java - ...

  4. qpython3绘图_比Excel制图更强大,Python可视化工具Altair入门教程

    比 Excel 制图更强大,Python 可视化工具 Altair 入门教程 数据转化成更直观的图片,对于理解数据背后的真相很有帮助.如果你有这方面的需求,而且还在使用 Python,那么强烈推荐你试 ...

  5. python将医学图像dicom文件批量转换为avi视频格式

    最近,做了一个批量转换格式带界面的插件,要求是把dicom格式的文件转换为avi视频格式的文件.查阅很多资料之后,完成了该任务. 首先,导入以下库,比如opencv.SimpleITK.numpy等 ...

  6. 干货整理!10个Python图像处理工具,入门必看,提效大法

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 在图像处理领域,一库在手,相当于天下已有.但是今天给大家推荐10个好用的库,快来看看有 ...

  7. 干货整理!10个Python图像处理工具,入门必看,提效大法 | 资源

    原作:Parul Pandey 铜灵 编译整理 量子位 出品 | 公众号 QbitAI 在图像处理领域,一库在手,相当于天下已有. 最近,有一位搞数据科学的小姐姐Parul Pandey,整理了一份实 ...

  8. 【ANTs】医学影像处理工具ANTs安装教程 - 快速安装,即插即用,无需编译

    [ANTs]医学影像处理工具ANTs - 即插即用的安装教程,无需编译 ANTs(Advanced Normalization Tools)是一个用于处理医学图像的先进工具集.ANTs 允许人们组织. ...

  9. python图表可视化工具_比Excel制图更强大,Python可视化工具Altair入门教程

    原作者 Parul Pandey 晓查 编译整理 量子位 出品 | 公众号 QbitAI 数据转化成更直观的图片,对于理解数据背后的真相很有帮助.如果你有这方面的需求,而且还在使用Python,那么强 ...

  10. 比Excel制图更强大,Python可视化工具Altair入门教程

    原作者 Parul Pandey  晓查 编译整理 量子位 出品 | 公众号 QbitAI 数据转化成更直观的图片,对于理解数据背后的真相很有帮助.如果你有这方面的需求,而且还在使用Python,那么 ...

最新文章

  1. opencl track资料整理
  2. 爬虫+数据分析,制作一个世界疫情人数增长动态柱状竞赛图
  3. element-ui中对话框dialog不显示,仅背景变灰
  4. 虚拟计算机用户权限分配,虚拟机实例的权限和安全配置
  5. web mis系统构建
  6. 【图论】最短路学习笔记
  7. python小结_Python小结
  8. 配置VS2008来Debug .Net框架源码
  9. 烦了,放弃卡巴——改用小红伞
  10. android日程源代码,android日程表实现---仿滴答清单
  11. 72个炫酷的CSS技巧
  12. Microsoft SQL Server 2000 简体中文企业版 +SP4升级补丁
  13. 从物联网到元宇宙-李正海在物联网大会上的发言
  14. 生信:2:sam格式文件解读
  15. PG数据库按照30分钟时间片统计数据
  16. 第四章第十节数据资产盘点-形成数据资产目录
  17. 机器学习——关联规则
  18. SQL查询表中重复数据
  19. KY59 神奇的口袋【和某题相同原理!!】
  20. Carla:ROS bridge installation for ROS 1

热门文章

  1. kjb文件 解析_微信安装包解析异常
  2. 查看tomcat目前用的jdk版本
  3. C语言的C11 标准有哪些改进的地方?C11 为何不如 C++11 流行?
  4. java项目运维手册
  5. 封电脑机器码怎么解决_如何通过修改机器码解决游戏封号问题
  6. 【Android 四大组件之Content Provider】一文吃透 BroadcastReceiver 广播接收器
  7. 3.jsp页面分页功能(首页、下一页、上一页、末页)
  8. 点云数据增强及预处理
  9. 高等数学(第七版)同济大学 习题3-2 个人解答
  10. 码出高效,码出质量:阿里Java开发手册正式发布!