医学影像dcm格式转jpg运行慢解决方案

本文介绍了一个解决批量将医学影像dcm格式转换为jpg格式时速度慢的问题。问题源于在使用matplotlib保存图像后未清除figure,通过添加plt.clf()命令显著提升了转换效率。提供了一个使用python和pydicom库实现的优化代码示例。
摘要由CSDN通过智能技术生成

医学影像dcm格式转jpg运行慢解决方案:

利用python语言将一些数据格式为dcm的数据,转化成 jpg、png或bmp等形式。

问题描述:

一个同课题组的同学研究方向为医学影像方面,需要把dcm的医学影像转成jpg图像进行分析和处理。数据格式转化了一个多月还是没转好,导师顿时坐不住了。然后我也帮忙看了下代码,一开始没发现不对劲。后面发现…噢。。。

原因分析:

利用for循环批量进行数据转化时使用matplotlib保存图像后,没有清除 figure,即少了 plt.clf() 命令,导致速度变慢。

解决方案:

# 导入相应的包
import pydicom
import matplotlib.pyplot as plt
import os
from tqdm import tqdm

def DCMtoJPG(sourcepath, tagertpath):
    # 遍历原始数据路径所有文件夹
    all_dir = os.listdir(sourcepath)
    all_dir_len = len(all_dir)
    # 对每个子文件夹进行批量处理
    for i, dir_ in enumerate(all_dir):
        print('Toall dir: {} Current dir: {} : {}'.format(all_dir_len,i, dir_))
        # 在目标路径也建立和原始路径相同名称的文件夹
        os.makedirs(os.path.join(tagertpath, dir_), exist_ok=True)
        # 遍历子文件夹中所有 dcm 数据
        all_file = os.listdir(os.path.join(sourcepath, dir_))
        #对每个子文件夹中的 dcm 数据进行处理
        for file in tqdm(all_file):
            ds = pydicom.dcmread(os.path.join(sourcepath, dir_, file))
            plt.imshow(ds.pixel_array)
            new_name = file.split('.')[0]+'.jpg'
            out_path = os.path.join(tagertpath, dir_, new_name)
            plt.savefig(out_path)
            # **速度慢就是少了以下一行代码!!!**
            plt.clf()
    print('完结撒花!')
   
if __name__=='__main__':
	# 原始数据路径 sourcepath 中包含了许多子文件夹,每个子文件夹包含 dcm 数据
    sourcepath = '/home/name/sourcepath'
    # 保存 jpg 的目标路径
    tagertpath = '/home/name/tagertpath'
    DCMtoJPG(sourcepath, tagertpath)

如果感到快乐,你就拍拍手👏👏👏

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值