网络编程
位置:首页>> 网络编程>> Python编程>> python 将dicom图片转换成jpg图片的实例

python 将dicom图片转换成jpg图片的实例

作者:GoHowz  发布时间:2023-08-24 11:12:27 

标签:python,dicom,转换,jpg

主要原理:调整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')

来源:https://blog.csdn.net/IT_forlearn/article/details/81046417

0
投稿

猜你喜欢

  • 视觉设计是什么,人们怎么认为它的,自己又是怎么对待和理解它,它的核心价值是什么。视觉设计,冒似很艺术,跟艺术相关的职业,给大多数人的印象是做
  • 网页过渡是指当浏览者进入或离开网页时,页面呈现的不同的刷新效果,比如卷动、百叶窗等。注:通过模板所建网页无法添加网页过渡效果!制作步骤:1、
  • 代码如下:<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001&quo
  • 很多时候,希望能够在 HTML 中使用空格排版。但浏览器在解析 HTML 时,会把连续的空格解析成一个,所以我们会使用 &nbsp;
  • 看完了这个你就可以用asp修改注册表了!大名鼎鼎的WSH听说过吗? 它就是Windows script Host的缩写形式,WSH是Wind
  • 一、连接MYSQL:格式: mysql -h主机地址 -u用户名 -p用户密码1、例1:连接到本机上的MYSQL。首先在打开DOS窗口,然后
  • Oracle shutdown的时候突然断电,导致使用sql/plus启动时无法连接到数据库,具体描述为:connection can no
  • gzip 是什么东东呢?百科跟我们说gzip是GNU zip的缩写,它是一个 GNU 自由软件的文件压缩程序。…gzip 的基础是 DEFL
  • 安装方法: regsvr32 parmf.dll附 如果想取消注册可以:regsvr32 /u&nb
  • 下面是我已经证实可用的自动备份的方法. 1、打开企业管理器->管理->sql server代理 2、新建一个作业,作业名称随便取
  • 改版背景创建专业的电子商务垂直搜索,以及把原有的信息聚合平台转型为在线采购批发交易平台。根据行业特点及交易需要,对原有的零批(小额批发)搜索
  • 大家平时见到google的广告太多了,但有没有兴趣知道一下它的运行过程呢?下面我们一起来看看这个广告代码的执行过程,以及其中的一些精彩内容。
  • 简介桥接模式又叫桥梁模式,属于结构型模式。目的是将抽象与实现分离,使它们都可以独立的变化,解耦。继承有很多好处,但是会增加耦合,而桥接模式偏
  • 图片的间隙 (1)问:我有一张大图片,把它切割后在Dreamweaver中进行拼接,可是总是有间隙,不知为什么? 答:不知你是否把表格的边距
  • 14个超酷的js显示时间效果,一定有你想要的。正常时间显示运行效果图:<title>正常显示的时钟 - asp之家 - http
  • alleen 问:下面是我制作的一菜单效果,现在的问题是当我只点击一级菜单A一次的时候,一级菜单A的背景色由绿色变成了黄色,再点击一级菜单B
  • ajax编程获取Google的PageRank3(PR值)及所在目录,想给你的站增加Google PR查询的功能吗?如果你不会就看看本文吧,
  • [本站原创]在我们浏览了一些网页时,经常会弹出一些信息窗口或浏览器窗口以显示一些公告内容,想知道这些窗口是怎么制作出来的吗?如果你还不曾知道
  • 今天在群(CSS森林:30247792)里讨论了border的样式写法,发现border的写法还真是灵活,做了一下总结,希望对大家有用:bo
  • 这是一条颠覆常规的插入方法,一条INSERT语句可以完成向多张表的插入任务。小小地展示一下这种插入方法。1.创建表T并初始化测试数据,此表作
手机版 网络编程 asp之家 www.aspxhome.com