首页 > 编程语言 >Python:dcm转jpg脚本

Python:dcm转jpg脚本

时间:2023-11-15 17:46:24浏览次数:40  
标签:dcm Python dicom image jpg file output path folder

import pydicom
from PIL import Image
import numpy as np
import os

def convert_dicom_to_jpeg(dicom_file_path, output_folder):
    # 读取DICOM文件
    dicom_file = pydicom.dcmread(dicom_file_path)

    # 将DICOM数据转换为numpy数组
    image_array = dicom_file.pixel_array

    # 转换为8位图像
    image_array = image_array - np.min(image_array)
    image_array = image_array / np.max(image_array)
    image_8bit = (image_array * 255).astype(np.uint8)

    # 转换为PIL图像
    image = Image.fromarray(image_8bit)

    # 构建输出文件名
    base_name = os.path.basename(dicom_file_path)
    output_file_name = os.path.splitext(base_name)[0] + '.jpg'
    output_path = os.path.join(output_folder, output_file_name)

    # 保存为JPEG
    image.save(output_path)

# 定义DICOM文件所在的文件夹和输出文件夹
dicom_folder = '/home/venus/Desktop/dicom'
output_folder = '/home/venus/Desktop/dicom'

# 确保输出文件夹存在
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 遍历文件夹中的所有DICOM文件
for file_name in os.listdir(dicom_folder):
    if file_name.lower().endswith('.dcm'):
        file_path = os.path.join(dicom_folder, file_name)
        convert_dicom_to_jpeg(file_path, output_folder)

注意:以上代码来自ChatGPT4,我的问题是如何批量将dcm转换为jpg文件,ChatGPT为我提供了一段Python代码,并告诉我详细的使用方法,经过验证,毫无意外,代码完美完成了将目录中所有dcm文件转换为jpg格式。以下是ChatGPT的文本输出。

 

标签:dcm,Python,dicom,image,jpg,file,output,path,folder
From: https://www.cnblogs.com/magics/p/17834373.html

相关文章

  • python tkinter treeview 仿 excel表格
    代码:fromtkinterimportttkfromtkinterimport*root=Tk()#初始框的声明columns=("姓名","IP地址")treeview=ttk.Treeview(root,height=18,show="headings",columns=columns)#表格treeview.column("姓名",width=100,a......
  • 软件测试|Python openpyxl库使用指南
    简介我们之前介绍过,python在自动化办公方面可以大放异彩,因为Python有许多的第三方库,其中有很多库就支持我们对office软件进行操作,熟练的使用Python对office进行操作,可以实现自动化办公,极大提升我们的工作效率。本篇文章,我们就来介绍一下处理Excel的第三方库,openpyxl的使用。安......
  • 软件测试|Python Faker库使用指南
    简介Faker是一个Python库,用于生成虚假(假的)数据,用于测试、填充数据库、生成模拟数据等目的。它可以快速生成各种类型的虚假数据,如姓名、地址、电子邮件、电话号码、日期等,非常适合在开发和测试过程中使用。本文将介绍PythonFaker库的详细使用。安装Faker库首先,我们要先安装Fak......
  • 软件测试|Python数据可视化神器——pyecharts教程(八)
    Pyecharts绘制热力图当涉及可视化数据时,热力图是一种强大的工具,它可以帮助我们直观地了解数据集中的模式和趋势。在本文中,我们将学习如何使用Python中的Pyecharts库创建热力图,以便将数据转化为可视化的形式。什么是热力图?热力图是一种用于显示数据密度的二维图表,其中颜色的......
  • 软件测试|Python urllib3库使用指南
    简介当涉及到进行网络请求和处理HTTP相关任务时,Python的urllib3库是一个强大且灵活的选择。它提供了一种简单的方式来执行HTTP请求、处理响应和处理连接池,使得与Web服务进行交互变得更加容易。本文将详细介绍如何使用urllib3库进行网络请求。安装urllib3首先我们需要安装urlli......
  • 不懂乐理,也能扒谱,基于openvpi将mp3转换为midi乐谱(Python3.10)
    所谓"扒谱"是指通过听歌或观看演奏视频等方式,逐步分析和还原音乐作品的曲谱或乐谱的过程。它是音乐学习和演奏的一种常见方法,通常由音乐爱好者、乐手或学生使用。在扒谱的过程中,人们会仔细聆听音乐作品,辨别和记录出各个音符、和弦、节奏等元素,并通过试错和反复推敲来逐渐还原出准......
  • python 发邮件,简单版本
    importsmtplibfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartclassTemplate(object):html="""<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8......
  • Python3 协程 await async 相关的用法和笔记
    想要提供可以进行协程切换的awaitable,可以使用下面的方法:1任务taskasyncdeffunc():print("yesWait")task=asyncio.create_task(func())awaittask2协程对象,可以使asyncdef定义的协程函数(是否能触发切换不一定,要看函数内容)函数内可以利用asyncio.sl......
  • 软件测试|使用python绘制等高线密度图
    简介等高线密度图(ContourDensityPlot)是一种可视化数据分布的有效方式,特别适用于显示二维数据的密度分布情况。Python提供了丰富的工具和库,使得创建等高线密度图变得相对容易。在本文中,我们将介绍如何使用Python和Matplotlib库创建等高线密度图,并提供一个示例来演示整个过程。步骤......
  • 软件测试|使用Python提取出语句中的人名
    简介在自然语言处理(NLP)中,提取文本中的人名是一项常见的任务。Python作为一种流行的编程语言,拥有强大的NLP库和工具,使我们能够轻松地进行这项任务。在本文中,我们将使用Python示例来演示如何提取文本中的人名。环境准备我们将使用以下Python库来执行人名提取任务:spaCy:一个流行的NLP库......