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 相关文章推荐
Django中的CACHE_BACKEND参数和站点级Cache设置
Jul 23 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
Python实现基于KNN算法的笔迹识别功能详解
Jul 09 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
手把手教你pycharm专业版安装破解教程(linux版)
Sep 26 Python
django列表筛选功能的实现代码
Mar 27 Python
浅谈Python中的模块
Jun 10 Python
Python中Selenium库使用教程详解
Jul 23 Python
python 如何快速复制序列
Sep 07 Python
python 实现图片修复(可用于去水印)
Nov 19 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
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
php自动加载机制的深入分析
2013/06/08 PHP
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
完善的jquery处理机制
2016/02/21 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
探讨Vue.js的组件和模板
2017/10/27 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
土木工程个人自荐信范文
2013/11/30 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
医院党建工作总结2015
2015/05/26 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
Python中super().__init__()测试以及理解
2021/12/06 Python
带你了解Java中的ForkJoin
2022/04/28 Java/Android
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android