Spaces:
Sleeping
Sleeping
""" | |
Utils for datasets | |
""" | |
import numpy as np | |
import numpy as np | |
import SimpleITK as sitk | |
def read_nii_bysitk(input_fid, peel_info = False): | |
""" read nii to numpy through simpleitk | |
peelinfo: taking direction, origin, spacing and metadata out | |
""" | |
img_obj = sitk.ReadImage(input_fid) | |
img_np = sitk.GetArrayFromImage(img_obj) | |
if peel_info: | |
info_obj = { | |
"spacing": img_obj.GetSpacing(), | |
"origin": img_obj.GetOrigin(), | |
"direction": img_obj.GetDirection(), | |
"array_size": img_np.shape | |
} | |
return img_np, info_obj | |
else: | |
return img_np | |
def convert_to_sitk(input_mat, peeled_info): | |
""" | |
write a numpy array to sitk image object with essential meta-data | |
""" | |
nii_obj = sitk.GetImageFromArray(input_mat) | |
if peeled_info: | |
nii_obj.SetSpacing( peeled_info["spacing"] ) | |
nii_obj.SetOrigin( peeled_info["origin"] ) | |
nii_obj.SetDirection(peeled_info["direction"] ) | |
return nii_obj | |
def np2itk(img, ref_obj): | |
""" | |
img: numpy array | |
ref_obj: reference sitk object for copying information from | |
""" | |
itk_obj = sitk.GetImageFromArray(img) | |
itk_obj.SetSpacing( ref_obj.GetSpacing() ) | |
itk_obj.SetOrigin( ref_obj.GetOrigin() ) | |
itk_obj.SetDirection( ref_obj.GetDirection() ) | |
return itk_obj | |