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下函数参数的传递(参数带星号的说明)
Sep 19 Python
解析Python编程中的包结构
Oct 25 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
Jul 24 Python
解决python 自动安装缺少模块的问题
Oct 22 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
python的concat等多种用法详解
Nov 28 Python
Python基础之函数的定义与使用示例
Mar 23 Python
Python Web框架之Django框架Form组件用法详解
Aug 16 Python
Python unittest 自动识别并执行测试用例方式
Mar 09 Python
详解用Python调用百度地图正/逆地理编码API
Jul 02 Python
几款好用的python工具库(小结)
Oct 20 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/25 PHP
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
nodejs后台集成ueditor富文本编辑器的实例
2017/07/11 NodeJs
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python环形单链表的约瑟夫问题详解
2018/09/27 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
高中军训感想
2015/08/07 职场文书
团委副书记工作总结
2015/08/14 职场文书
心得体会格式及范文
2016/01/25 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js