Spaces:
Sleeping
Sleeping
import nibabel as nib | |
import numpy as np | |
from skimage.transform import resize | |
def load_nifti(file_path): | |
"""Load a NIfTI file and return it as a numpy array.""" | |
nifti = nib.load(file_path) | |
return nifti.get_fdata() | |
def preprocess_nifti(nifti_array, target_size=(256, 256)): | |
"""Preprocess the NIfTI array by selecting a middle slice, resizing and normalizing.""" | |
# Select the middle slice if it's a 3D volume | |
if nifti_array.ndim == 3: | |
middle_slice = nifti_array.shape[2] // 2 | |
nifti_array = nifti_array[:, :, middle_slice] | |
# Resize the image | |
resized = resize(nifti_array, target_size, mode='constant', preserve_range=True) | |
# Normalize the image | |
normalized = (resized - np.min(resized)) / (np.max(resized) - np.min(resized)) | |
return normalized.astype(np.float32) | |
def load_and_preprocess_nifti(file_path, target_size=(256, 256)): | |
"""Load a NIfTI file, preprocess it, and return as a numpy array.""" | |
nifti_array = load_nifti(file_path) | |
return preprocess_nifti(nifti_array, target_size) |