用python加载dicom图片的方法:使用pydicom、CV2、numpy、matplotlib等库即可。pydicom库是专门用来处理dicom图像的python专用库。

python读取DICOM图像,需要以下几个库:pydicom、CV2、numpy、matplotlib。pydicom是专门处理dicom图像的python专用包,numpy高效处理科学计算的包,依据数据绘图的库。

安装需要的库pip install matplotlibpip install opencv-pythonpip install pydicom

pip install numpy

安装好这些库后就可以对dicom文件操作了。

具体代码如下:#-*-coding:utf-8-*-

import cv2

import numpy

import dicom

from matplotlib import pyplot as plt

dcm = dicom.read_file("AT0001_100225002.DCM")

dcm.image = dcm.pixel_array * dcm.RescaleSlope + dcm.RescaleIntercept

slices = []

slices.append(dcm)

img = slices[ int(len(slices)/2) ].image.copy()

ret,img = cv2.threshold(img, 90,3071, cv2.THRESH_BINARY)

img = numpy.uint8(img)

im2, contours, _ = cv2.findContours(img,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)

mask = numpy.zeros(img.shape, numpy.uint8)

for contour in contours:

cv2.fillPoly(mask, [contour], 255)

img[(mask > 0)] = 255

kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(2,2))

img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

img2 = slices[ int(len(slices)/2) ].image.copy()

img2[(img == 0)] = -2000

plt.figure(figsize=(12, 12))

plt.subplot(131)

plt.imshow(slices[int(len(slices) / 2)].image, 'gray')

plt.title('Original')

plt.subplot(132)

plt.imshow(img, 'gray')

plt.title('Mask')

plt.subplot(133)

plt.imshow(img2, 'gray')

plt.title('Result')

plt.show()

在DICOM图像里,包含了患者的相关信息的字典,我们可以通过dir查看DICOM文件有什么信息,可以通过字典返回相关的值。import dicom

import json

def loadFileInformation(filename):

information = {}

ds = dicom.read_file(filename)

information['PatientID'] = ds.PatientID

information['PatientName'] = ds.PatientName

information['PatientBirthDate'] = ds.PatientBirthDate

information['PatientSex'] = ds.PatientSex

information['StudyID'] = ds.StudyID

information['StudyDate'] = ds.StudyDate

information['StudyTime'] = ds.StudyTime

information['InstitutionName'] = ds.InstitutionName

information['Manufacturer'] = ds.Manufacturer

print dir(ds)

print type(information)

return information

a=loadFileInformation('AT0001_100225002.DCM')

print a

python怎么加载图片-怎样用python加载dicom图片相关推荐

  1. 【pngquant】使用Python压缩图片,降低网页加载时间

    更多内容请点击 我的博客 查看,欢迎来访. 用来做什么? 个人在写博客时,发现上传的图片如果很大,web访问第一次加载该图片就特别的慢. 可以考虑使用缩略图,浏览时显示缩略图,如果要看高清图,需点击图 ...

  2. python怎么加载图片-如何用python获取图像

    方法一:利用PIL中的Image函数,这个函数读取出来不是array格式 这时候需要用 np.asarray(im) 或者 np.array()函数:区别:np.array() 是深拷贝,np.asa ...

  3. 利用python实现深度学习生成对抗样本模型,为任一图片加扰动并恢复原像素的全流程记录

    利用python实现深度学习生成对抗样本,为任一图片加扰动并恢复原像素 一.前言 (一)什么是深度学习 (二)什么是样本模型 (三)什么是对抗样本 1.对抗的目的 2.谁来对抗? 3.对抗的敌人是谁? ...

  4. python 爬虫+selenium 全自动化下载JS动态加载漫画

    ** python 爬虫+selenium 全自动化下载JS动态加载漫画 最近刚学的python,代码可能并不规范,希望大家见谅! 爬取之前,我们首先需要做一些准备工作,因为很多网站都有反爬检索,为了 ...

  5. python图片批量处理器批量加水印重命名源码

    wx供重浩:创享日记 对话框发送:python图片批处理 免费获取完整源码源文件+说明文档+可执行文件等 在PyCharm中运行<图片批量处理器>即可进入如图1所示的系统主界面.在该界面中 ...

  6. python 按需加载_基于python的opcode优化和模块按需加载机制研究(学习与个人思路)(原创)...

    基于python的opcode优化和模块按需加载机制研究(学习与思考) 姓名:XXX 学校信息:XXX 主用编程语言:python3.5 文档转换为PDF有些图片无法完全显示,请移步我的博客查看 完成 ...

  7. word2vec实例详解python_在python下实现word2vec词向量训练与加载实例

    项目中要对短文本进行相似度估计,word2vec是一个很火的工具.本文就word2vec的训练以及加载进行了总结. word2vec的原理就不描述了,word2vec词向量工具是由google开发的, ...

  8. Python的IDE:基于Eclipse/MyEclipse软件的PyDev插件配置python的开发环境(不同python项目加载不同版本的python)—从而实现Python编程图文教程之详细攻略

    Python的IDE:基于Eclipse/MyEclipse软件的PyDev插件配置python的开发环境(不同python项目加载不同版本的python)-从而实现Python编程图文教程之详细攻略 ...

  9. 利用Python进行数据分析(四):数据加载、存储与文件格式

    标题利用Python进行数据分析(四):数据加载.存储与文件格式 学习笔记来源于:简书https://www.jianshu.com/p/047d8c1c7e14 输入输出通常可以划分为几个大类:读取 ...

最新文章

  1. 德国最受欢迎的程序员技能排行
  2. WEB浏览器兼容(转)
  3. 存储过程与事务应用两三事
  4. python3精要(25)-lambda
  5. 关于解决error A2004: symbol type conflict错误
  6. windows server 2003 系统提权
  7. 交互设计沉思录:顶尖设计专家Jon Kolko的经验与心得(原书第2版)
  8. 360腾讯计算机比赛,巅峰对决 腾讯电脑管家VS360详尽评测
  9. 第5章 初识SqlSugarCore之内置逻辑分页
  10. 生成微信公众号二维码(动态,彩色)(python)
  11. 算法高级(29)-电影《源代码》中蕴含的回溯算法介绍
  12. 1135:配对碱基链
  13. PHP高级工程师必备技术合集
  14. AAAI 2022 | 量化交易相关论文(附论文链接)
  15. 业务模块卸载失败定位过程
  16. 线程八—— 线程插队 join()
  17. 多项式最小二乘法曲线拟合Python程序
  18. Linux 的 Parted 指令
  19. 上海体育馆分布api 上海体育馆查询
  20. STM32F03C8T6 MPU6050 标准库

热门文章

  1. 设计sample语言的词法分析器_重现木兰编程语言(十)——比较、循环,一个语法设计特色
  2. 实验报告三c语言,C语言实验报告三
  3. decode函数_decode函数的妙用网友的两个问题解答
  4. Linux下DIR,dirent,stat等结构体详解(转)
  5. 使用GAN进行异常检测——可以进行网络流量的自学习哇,哥哥,人家是半监督,无监督的话,还是要VAE,SAE。...
  6. golang LMDB入门例子——key range查询
  7. 解放你内心的自然领袖,从你的内心而非你的自我来领导你自己
  8. JD AWS vue上传文件
  9. openssl 从cer文件中提取公钥
  10. 主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)