MR图像预处理(1)——dcm批量选择,dcm批量转化成png

       主要内容:dcm批量选择模块介绍,dcm转png代码模块介绍,方便移植自己使用,最后把所有代码整合在预处理(5)文章中!!下面是跳转链接:

MR图像预处理(5)——MR图像处理成Yolov5,UNet格式数据-CSDN博客

       最近在学习医学图像处理,但是数据预处理很麻烦,网上的数据处理不能满足我的全部要求,找起来很零碎,就打算放一份集成代码在网上,帮助自己复习巩固,也帮助大家加快预处理进度。

一,dcm文件夹批量选择dcm图片

我希望把701015或者601015文件夹(两者仅会存在一个)下面的dcm全部提取出来,并且以想要的方式重新命名,然后在保存到目标文件夹

代码如下:

import os
import shutil

if __name__ == '__main__':
    # dicom文件目录
    rt_path = r'C:\Users\22495\Desktop\myomagroup3b' #dcm原文件夹路径
    output_path = r'C:\Users\22495\Desktop\processed' #最后输出的dcm文件夹路径
    for root, dir, file in os.walk(rt_path):
        split_root = root.split('\\')#通过\\来进行截断
        if (split_root[-1]) == "701015" or (split_root[-1]) == "601015":
            print('patient_' + split_root[-3] + ' pictures are storing')
            #下面是修改名称的部分,按需来写
            for f in file:
                split_file = f.split('_')
                f_old_path = os.path.join(root, f)
                # 找到放了T2W_TSE的文件夹,复制里面的所有文件,并修改名称
                f_new_name = split_root[-3] + '_T2W_TSE_' + split_file[-1]
            #保存图片到新路径
                f_new_path = os.path.join(output_path, f_new_name)
                shutil.copy(f_old_path, f_new_path)
os.walk()是一个生成器函数,用于遍历目录树中的所有文件和文件夹。
import os

for root, dirs, files in os.walk('path/to/directory'):
    # root: 当前正在遍历的文件夹路径
    # dirs: 当前文件夹中的子文件夹列表
    # files: 当前文件夹中的文件列表
    # 在这里可以对root、dirs和files进行相应的操作

    # 例如,打印当前文件夹路径
    print(root)

    # 例如,打印当前文件夹中的所有文件名
    for file in files:
        print(file)

    # 例如,打印当前文件夹及其子文件夹中的所有文件名
    for dir in dirs:
        for subdir_root, subdir_dirs, subdir_files in os.walk(os.path.join(root, dir)):
            for subdir_file in subdir_files:
                print(os.path.join(subdir_root, subdir_file))
 

二,dcm图片转换成png图片

import os
import pydicom
from matplotlib import pyplot as plt


dicom_directory = r"C:\Users\22495\Desktop\myomagroup3a\20220726080402\701015"  # 原dcm文件路径
output_directory = r"C:\Users\22495\Desktop\dcm.png"  # png图片保存路径
if not os.path.exists(output_directory):
    os.makedirs(output_directory)#如果没有输出文件夹,就按需求创造一个这样的文件夹


for root, dirs, files in os.walk(dicom_directory):
    for file in files:
        if file.endswith(".dcm"):
            dicom_file_path = os.path.join(root, file)
            ds = pydicom.dcmread(dicom_file_path)
            pixel_array_numpy = ds.pixel_array#找到dcm文件进行保存

            # 3. 保存为PNG
            output_path = os.path.join(output_directory, file.replace(".dcm", ".png"))
            plt.imsave(output_path, pixel_array_numpy, cmap='gray')

参考:将dcm文件转换为png图片_dcm文件的图片怎么转换-CSDN博客

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用DCMTK 3.6.3的dcm2pnm.exe将多帧DICOM图像转换为单个PNG图像,您可以按照以下步骤操作: 1. 首先,确保已经正确安装DCMTK 3.6.3库。您可以从DCMTK的官方网站(https://dicom.offis.de/dcmtk.php.en)下载并按照说明进行安装。 2. 打开命令行提示符或终端窗口,并导航到包含DICOM图像文件的目录。 3. 运行以下命令以将多帧DICOM图像转换为单个PNG图像: ``` dcm2pnm +Fpng input.dcm output.png ``` 其中,`input.dcm`是您要转换的多帧DICOM图像文件的路径,`output.png`是生成的单个PNG图像文件的路径。 请确保在命令行中正确指定了dcm2pnm.exe的路径,或者将其添加到系统环境变量中,以便可以直接在任何目录下运行该命令。 4. 执行命令后,dcm2pnm将会解析输入的多帧DICOM图像,并将其转换为单个PNG图像。生成的PNG图像文件将保存在指定的输出路径中。 请注意,dcm2pnm是DCMTK提供的一个实用工具,可用于将DICOM图像转换为其他常见的图像格式。根据您的需求,您可以使用其他选项和参数来进一步控制转换过程。您可以通过运行 `dcm2pnm --help` 命令获取更多用法和选项的详细信息。 此外,如果您希望在自己的程序中实现DICOM图像转换,您可以使用DCMTK库提供的API来读取和处理DICOM图像,并将其保存为PNG格式。具体的实现方式将涉及更多的编程细节,可以参考DCMTK的文档和示例代码以获取更多信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值