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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
Python文件和目录操作详解
Feb 08 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
详解python 拆包可迭代数据如tuple, list
Dec 29 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
Sanic框架Cookies操作示例
Jul 17 Python
numpy基础教程之np.linalg
Feb 12 Python
Python玩转Excel的读写改实例
Feb 22 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
python实现邮件发送功能
Aug 10 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
javascript cookies操作集合
2010/04/12 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python部署web开发程序的几种方法
2017/05/05 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
numpy实现RNN原理实现
2021/03/02 Python
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
Solaris操作系统的线程机制
2015/07/28 面试题
趣味活动策划方案
2014/02/08 职场文书
村容村貌整治方案
2014/05/21 职场文书
工地材料员岗位职责
2015/04/11 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
初中数学教学随笔
2015/08/15 职场文书
速龙x4-860k处理器相当于i几
2022/04/20 数码科技
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技