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笔记(2)
Oct 24 Python
python友情链接检查方法
Jul 08 Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 Python
浅谈Python处理PDF的方法
Nov 10 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
Python倒排索引之查找包含某主题或单词的文件
Nov 13 Python
Python大数据之从网页上爬取数据的方法详解
Nov 16 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
Keras实现支持masking的Flatten层代码
Jun 16 Python
pycharm 如何查看某一函数源码的快捷键
May 12 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 Python
详解PyTorch模型保存与加载
Apr 28 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
Content-type 的说明
2006/10/09 PHP
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
Yii rules常用规则示例
2016/03/15 PHP
php ajax实现文件上传进度条
2016/03/29 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
python开发之字符串string操作方法实例详解
2015/11/12 Python
python生成excel的实例代码
2017/11/08 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
留学推荐信中文范文三篇
2014/01/25 职场文书
部队万能检讨书
2014/02/20 职场文书
村级四风对照检查材料
2014/08/24 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
525心理健康活动总结
2015/05/08 职场文书
个人催款函范文
2015/06/24 职场文书
讲座新闻稿
2015/07/18 职场文书