Fyp_MriBraTS / utils /utils.py
mecxlan's picture
Upload 3 files
2997770 verified
Raw History Blame Contribute Delete
1.09 kB
import cv2
import numpy as np
from tensorflow.keras import backend as K
def preprocess_image(image, target_size=(256, 256)):
image = np.array(image)
image = cv2.resize(image, target_size)
image = image / 255.0
return image
def postprocess_prediction(prediction, threshold=0.5):
mask = (prediction > threshold).astype(np.float32)
return mask
def dice_coef(y_true, y_pred, smooth=1):
y_true_f = K.flatten(y_true)
y_pred_f = K.flatten(y_pred)
intersection = K.sum(y_true_f * y_pred_f)
return (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)
def dice_loss(y_true, y_pred):
return 1 - dice_coef(y_true, y_pred)
def overlay_segmentation(original_image, segmentation_mask):
segmentation_mask = cv2.resize(segmentation_mask, (original_image.shape[1], original_image.shape[0]))
segmentation_mask_colored = np.zeros_like(original_image)
segmentation_mask_colored[:, :, 0] = segmentation_mask.squeeze() * 255
overlay = cv2.addWeighted(original_image, 0.7, segmentation_mask_colored, 0.3, 0)
return overlay