python脚本实现批处理nii图像4D转3D

import nibabel as nib
import os

# 指定包含4D NIfTI文件的文件夹路径
folder_path = r'path/to/save/directory'

# 获取文件夹中所有子文件夹的路径
subfolders = [f.path for f in os.scandir(folder_path) if f.is_dir()]

# 遍历每个子文件夹
for subfolder in subfolders:
    # 获取子文件夹名称
    subfolder_name = os.path.basename(subfolder)

    # 获取子文件夹中所有4D NIfTI文件的路径
    nifti_files = [f for f in os.listdir(subfolder) if f.endswith('.nii')]

    # 创建保存目录
    output_folder = os.path.join(subfolder, '保存所有3d文件的文件夹名称')
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 遍历每个4D NIfTI文件并转换为3D NIfTI文件
    for nifti_file in nifti_files:
        # 构建4D NIfTI文件的完整路径
        nifti_path = os.path.join(subfolder, nifti_file)

        # 读取4D NIfTI文件
        nii_4D = nib.load(nifti_path)

        # 获取时间点的数量
        timepoints = nii_4D.shape[3]

        # 将每个时间点的数据保存为单独的3D NIfTI文件
        for i in range(timepoints):
            # 提取单个时间点的数据
            nii_3D = nii_4D.dataobj[..., i]

            # 构建保存文件路径
            save_path = os.path.join(output_folder,f'{nifti_file[:-7]}_{i+1}.nii')
            print(save_path)

            # 保存为独立的3D NIfTI文件
            nii_3D_img = nib.Nifti1Image(nii_3D, nii_4D.affine, nii_4D.header)
            nib.save(nii_3D_img, save_path)

print('转换完成!')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值