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基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
Dec 08 Python
Python中logging模块的用法实例
Sep 29 Python
python通过pil将图片转换成黑白效果的方法
Mar 16 Python
python检查指定文件是否存在的方法
Jul 06 Python
Python实现代码统计工具(终极篇)
Jul 04 Python
python中for用来遍历range函数的方法
Jun 08 Python
python3个性签名设计实现代码
Jun 19 Python
Python sorted函数详解(高级篇)
Sep 18 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
django框架基于模板 生成 excel(xls) 文件操作示例
Jun 19 Python
详解python实现交叉验证法与留出法
Jul 11 Python
Python各协议下socket黏包问题原理
Apr 12 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
如何过滤高亮显示非法字符
2006/10/09 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
php校验表单检测字段是否为空的方法
2015/03/20 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
Prototype ObjectRange对象学习
2009/07/19 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
python实现人脸识别代码
2017/11/08 Python
tornado 多进程模式解析
2018/01/15 Python
python 重定向获取真实url的方法
2018/05/11 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
汉森批发:Hansen Wholesale
2018/05/24 全球购物
研发工程师岗位职责
2014/04/28 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers