在学习nnUNet时,需要的数据集格式为nii.gz,这里付上将dcm格式文件转化为nii.gz的代码
使用方法:
1.将dicom_folder更改为需要更改的原文件路径
2.将output_folder更改为转化后的文件夹需要保存的路径
import os
import pydicom
import numpy as np
import nibabel as nib
import torch
# 读取DICOM文件夹路径
dicom_folder = "F:/seg/chaos_dcm(1)/chaos_dcm/val/Data"
# 创建保存NIfTI文件的目标文件夹
output_folder = "F:/seg/Task600-liver/val"
os.makedirs(output_folder, exist_ok=True)
# 遍历DICOM文件夹中的所有.dcm文件
for filename in os.listdir(dicom_folder):
if filename.endswith(".dcm"):
dicom_path = os.path.join(dicom_folder, filename)
# 读取DICOM文件
dicom_data = pydicom.dcmread(dicom_path)
# 提取图像数据并转换为PyTorch张量
image_data = dicom_data.pixel_array.astype(np.float32)
image_tensor = torch.from_numpy(image_data)
# 图像数据处理步骤(根据需要进行调整)
# ...
# 创建NIfTI对象
nifti_image = nib.Nifti1Image(image_tensor.numpy(), affine=np.eye(4))
# 保存为nii.gz文件
save_path = os.path.join(output_folder, f"{filename}.nii.gz")
nib.save(nifti_image, save_path)