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
投稿
猜你喜欢
- django 返回数据的主要是用django.http.HttpResponse 中的HttpResponse 完成的具体的我直接贴代码吧
- 一、概述网络爬虫(Web crawler),又称为网络蜘蛛(Web spider)或网络机器人(Web robot),主要用来爬取目标网站内
- having的用法 having子句可以让我们筛选成组后的各种数据,having子句在查询过程中慢于聚合语句(sum,min,max,avg
- PRD的作用之一在于,保留产品设计初衷,期望达到什么样的目的,起到事后验证的效果。产品初衷需要做到利益最大化,找最大的蛋糕,为最大目标人群服
- 1.使用 for key in dict遍历字典可以使用for key in dict遍历字典中所有的键x = {'a':
- 一、了解字符编码的知识储备1. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了
- 在我们的网站建设中,为网站打造一个契合网站主题的个性化标志则是必需的,这直接关系到能否成功地塑造网站的品牌。这从某些角度看仍在网站推广的范畴
- python的PIL库简直好用的不得了,PIL下面的Image库更是封装了很多对图片处理的函数,关于Image库的介绍和使用,看这里:htt
- bbssend.asp'寻呼台页面,向在线网友发送寻呼信息<%@ Language=VBScript %&
- 引入:通常,钓鱼网站本质是本质搭建一个跟正常网站一模一样的页面,用户在该页面上完成转账功能转账的请求确实是朝着正常网站的服务端提交,唯一不同
- 运行结果:程序代码如下:#将excel中的数据进行读取分析import openpyxlimport numpy as npimport m
- 这是一个基于Go语言开发的单点登录系统,实现手机号注册、手机号+验证码登录、手机号+密码登录、账号登出等功能,用户认证采用cookie和jw
- 一. 什么是模块(module)?在实际应用中,有时程序所要实现功能比较复杂,代码量也很大。若把所有的代码都存储在一个文件中,则不利于代码的
- 【需求背景】有时候我们要对比两份配置文件是不是一样,或者比较两个文本是否异样,可以使用linux命令行工具diff a_file b_fil
- 什么是PRC&GRPCRPC是远程过程调用(Remote Procedure Call)的缩写形式, RPC 的主要功能目标是让构建
- python的版本及依赖的库的安装#版本python 3.7.1pip install pywin32==224pip install nu
- 在进行网页抓取的时候,分析定位html节点是获取抓取信息的关键,目前我用的是lxml模块(用来分析XML文档结构的,当然也能分析html结构
- 本文实例讲述了Python使用matplotlib的pie函数绘制饼状图功能。分享给大家供大家参考,具体如下:matplotlib具体安装方
- 本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下:前言:深度优先遍历:对
- 获取文件目录的方法 :import os# '***获取当前目录***'os.getcwd()# '***获取上级目