注意:image文件名和标签文件名要对应!!!
import os
import nibabel as nib
from scipy.ndimage import zoom
def resize_label(label_img, target_shape):
current_shape = label_img.shape
factor = [float(t) / c for t, c in zip(target_shape, current_shape)]
resized_label_data = zoom(label_img.get_fdata(), factor, order=0, mode='nearest')
resized_label_img = nib.Nifti1Image(resized_label_data, affine=label_img.affine)
# 设置调整后的标签图像的方向与原始标签图像相同
resized_label_img.set_sform(label_img.get_sform())
resized_label_img.set_qform(label_img.get_qform())
return resized_label_img
# # 标签文件夹路径和图像文件夹路径
label_folder = r'lable文件夹'
image_folder = r'image文件夹'
# 遍历标签文件夹中的文件
for label_file in os.listdir(label_folder):
if label_file.endswith('.nii.gz'):
label_img = nib.load(os.path.join(label_folder, label_file))
# 提取对应的图像文件路径
image_path = os.path.join(image_folder, label_file)
if os.path.exists(image_path):
image_img = nib.load(image_path)
target_shape = image_img.shape
resized_label_img = resize_label(label_img, target_shape)
# 保存调整大小后的标签图像
nib.save(resized_label_img, os.path.join('文件夹', f'{label_file}'))
else:
print(f"Corresponding image file not found for {label_file}")