当前位置: 首页 > 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/a/303126.html

相关文章:

  • 【c++继承篇】--继承之道:在C++的世界中编织血脉与传承
  • HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (二、首页轮播图懒加载的实现)
  • 具身导航如何利用取之不尽的网络视频资源!RoomTour3D:基于几何感知的视频-指令训练调优
  • Redis哨兵(Sentinel)
  • 人工智能任务19-基于BERT、ELMO模型对诈骗信息文本进行识别与应用
  • linux mysql 备份
  • 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生成实体
  • 安全政策与安全意识(下)