在monai版本0.9.0之前,在对NIFTI文件应用Spacingd做完重采样后,monai中会主动对meta_dict中的affine进行修改。但是我使用的版本是1.2.0,新版本放弃了meta_dict,所以不会对meta_dict中的affine进行修改,即使已经完成了重采样操作。
我这里是需要对文件进行保存,所以需要使用到affine。浏览对应的issue后发现,可以直接调用data.affine直接调取更新后的affine,保存文件的时候就可以使用到了。
具体使用可以使:
import monai
from monai import data, transforms
resample_transforms = transforms.Compose([
transforms.LoadImaged(keys=["image", "label"]),
transforms.Addchanneld(keys=["image","label"]),
transforms.Orientationd(keys=["image", "label"], axcodes="RAS"),
transforms.Spacingd(keys=["image", "label"], pixdim=(1, 1, 1), mode=("bilinear", "nearest"))
])
image_path = "xxx.nii.gz"
mask_path = "xxx.nii.gz"
data_dict = resample_transforms({"image": image_path, "label": mask_path})
new_affine = data_dict["image"].affine # directly get the resampled affine