python 将dicom图片转换成jpg图片的实例


Posted in Python onJanuary 13, 2020

主要原理:调整dicom的窗宽,使之各个像素点上的灰度值缩放至[0,255]范围内。

使用到的python库:SimpleITK

下面是一个将dicom(.dcm)图片转换成jpg图片的demo:

import SimpleITK as sitk
import numpy as np
import cv2

def convert_from_dicom_to_jpg(img,low_window,high_window,save_path):
  lungwin = np.array([low_window*1.,high_window*1.])
  newimg = (img-lungwin[0])/(lungwin[1]-lungwin[0])  #归一化
  newimg = (newimg*255).astype('uint8')        #将像素值扩展到[0,255]
  cv2.imwrite(save_path, newimg, [int(cv2.IMWRITE_JPEG_QUALITY), 100])

if __name__ == '__main__':

  # 下面是将对应的dicom格式的图片转成jpg
  dcm_image_path = '/DICOM_image/lung001.dcm'    #读取dicom文件
  output_jpg_path = 'JPG_image/lung001.jpg'
  ds_array = sitk.ReadImage(dcm_image_path)     #读取dicom文件的相关信息
  img_array = sitk.GetArrayFromImage(ds_array)   #获取array
  # SimpleITK读取的图像数据的坐标顺序为zyx,即从多少张切片到单张切片的宽和高,此处我们读取单张,因此img_array的shape
  #类似于 (1,height,width)的形式
  shape = img_array.shape
  img_array = np.reshape(img_array, (shape[1], shape[2])) #获取array中的height和width
  high = np.max(img_array)
  low = np.min(img_array)
  convert_from_dicom_to_jpg(img_array, low, high, output_jpg_path)  #调用函数,转换成jpg文件并保存到对应的路径
  print('FINISHED')

以上这篇python 将dicom图片转换成jpg图片的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现用户登陆邮件通知的方法
Jul 09 Python
Django接受前端数据的几种方法总结
Nov 04 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
Python实现购物车功能的方法分析
Nov 10 Python
python中itertools模块zip_longest函数详解
Jun 12 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
Python request使用方法及问题总结
Apr 26 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
pytorch学习教程之自定义数据集
Nov 10 Python
详解用 python-docx 创建浮动图片
Jan 24 Python
如何用python清洗文件中的数据
Jun 18 Python
python3实现常见的排序算法(示例代码)
Jul 04 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 #Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 #Python
利用python实现.dcm格式图像转为.jpg格式
Jan 13 #Python
如何基于Python + requests实现发送HTTP请求
Jan 13 #Python
python+tifffile之tiff文件读写方式
Jan 13 #Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 #Python
手动安装python3.6的操作过程详解
Jan 13 #Python
You might like
PHP 字符串操作入门教程
2006/12/06 PHP
php读取数据库信息的几种方法
2008/05/24 PHP
php简单的会话类代码
2011/08/08 PHP
apache mysql php 源码编译使用方法
2012/05/03 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
php实现Session存储到Redis
2015/11/11 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
PHP中SESSION过期设置
2021/03/09 PHP
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
python连接池实现示例程序
2013/11/26 Python
Python pass 语句使用示例
2014/03/11 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
python tkinter基本属性详解
2019/09/16 Python
python3图片文件批量重命名处理
2019/10/31 Python
python怎么判断模块安装完成
2020/06/19 Python
在keras里实现自定义上采样层
2020/06/28 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
2014年高中教师工作总结
2014/12/19 职场文书
会议欢迎词
2015/01/23 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
vue router 动态路由清除方式
2022/05/25 Vue.js