Spaces:
Sleeping
Sleeping
File size: 1,068 Bytes
8444121 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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) |