当前位置: 首页 > article >正文

python如何将DICOM图片转为JPG?

python如何将DICOM格式转为JPG格式图片??

  • 确保自己安装的环境中有pydicom
    如果没有用pip或者conda安装
import os
import numpy as np
import pydicom
from PIL import Image
from os import listdir

def dicom_to_jpeg(dicom_path, output_path):
    # 加载DICOM图像
    ds = pydicom.dcmread(dicom_path)

    # 提取像素数组
    pixel_array = ds.pixel_array

    # 转换为灰度图像
    image = Image.fromarray(pixel_array).convert("L")

    # 保存为JPEG图像
    image.save(output_path)


def dicom_to_rgb(dicom_path, output_path):
    # 加载DICOM图像
    ds = pydicom.dcmread(dicom_path)

    # 提取像素数组
    pixel_array = ds.pixel_array.astype(float)
    image_temp = (np.maximum(pixel_array,0)/pixel_array.max())*255
    image = np.uint8(image_temp)
    # 转换为灰度图像
    image = Image.fromarray(image)

    # 保存为JPEG图像
    image.save(output_path)
# 调用函数进行转换
if __name__ == "__main__":
    dicom_file = rf'E:\Python\PSMA\data\DCM'
    jepg_file = rf'E:\Python\PSMA\data\RGB'
    temp_list = listdir(dicom_file)
    for filename in temp_list:
        try:
            print(filename)
            image_list = listdir(os.path.join(dicom_file, filename))
            if os.path.exists(os.path.join(jepg_file, filename)):
                pass
            else:
                os.makedirs(os.path.join(jepg_file, filename))
            for image in image_list:
                print(image)
                if image[-3:] != 'DCM' :
                    pass
                else:
                    dicom_path = os.path.join(dicom_file, filename, image)
                    jepg_path = os.path.join(jepg_file, filename, image[:-3] + 'JPG')
                    dicom_to_rgb(dicom_path, jepg_path)
        except Exception as e:
            print(e)

http://www.kler.cn/news/303126.html

相关文章:

  • Docker torchserve 部署模型流程
  • MATLAB | R2024b更新了哪些好玩的东西?
  • 在Excel中通过Python运行公式和函数实现数据计算
  • 计算机网络27、28——Linux命令1、2
  • 这款神器,运维绝杀 !!! 【送源码】
  • 内部flash模拟成EepRom-重新梳理
  • codeup:将已有文件夹推送到已有仓库
  • 计算机毕业设计 | SpringBoot+vue 游戏商城 steam网站管理系统(附源码)
  • 【运维监控】Prometheus+grafana+kafka_exporter监控kafka运行情况
  • Leetcode 3282. Reach End of Array With Max Score
  • 波场TRON领航者孙宇晨:区块链行业的青年先锋与标杆
  • 代理导致的git错误
  • Grafana面板-linux主机详情(使用标签过滤主机监控)
  • 如何使用ssm实现基于VUE3+SSM框架的在线宠物商城+vue
  • 【Java】StringUtils 工具类常用的方法
  • 【JavaSE】--方法的使用
  • 【vuetify】v-select 无法正常显示,踩坑记录!
  • 京东鸿蒙上线前瞻——使用 Taro 打造高性能原生应用
  • .net core 通过Sqlsugar生成实体
  • 安全政策与安全意识(下)
  • 【2024】前端学习笔记3-外部链接-内部链接-锚点链接
  • 鱼类检测-目标检测数据集(包括VOC格式、YOLO格式)
  • mariadb主从配置步骤
  • 苹果CMS影视程序被举报侵权?有效解决方案指南
  • 从 Greenplum 到 Databend,数据仓库的开源新选择
  • 自定义WPF滑块样式-Slider
  • 桥接模式详解和分析JDBC中的应用
  • 微信小程序开发——比较两个数字大小
  • JavaScript知识点2
  • 告别繁琐,IsMyHdOK硬盘测速,即刻享受科技便利