Spaces:
Sleeping
Sleeping
import numpy as np | |
from skimage.segmentation import mark_boundaries | |
from ..model.model import get_unet | |
from .nifti_utils import load_and_preprocess_nifti | |
def predict_nifti(nifti_path, weights_path, mean=0, std=1): | |
"""Predict liver segmentation for a single NIfTI file.""" | |
# Load and preprocess the NIfTI file | |
img = load_and_preprocess_nifti(nifti_path) | |
img = (img - mean) / std | |
# Load the model and weights | |
model = get_unet() | |
model.load_weights(weights_path) | |
# Predict | |
mask = model.predict(np.expand_dims(img, axis=0))[0] | |
mask = (mask > 0.5).astype('uint8') | |
# Overlay the mask on the original image | |
segmented = mark_boundaries(img, mask[:,:,0], color=(1,0,0), mode='thick') | |
return segmented |