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('转换完成!')
python脚本实现批处理nii图像4D转3D
最新推荐文章于 2024-08-02 08:29:13 发布