|
import cv2 |
|
from preprocess import unsharp_masking |
|
|
|
|
|
def preprocessar_imagem(img, modelo='SE-RegUNet 4GF'): |
|
|
|
img = cv2.resize(img, (512, 512)) |
|
|
|
|
|
img = unsharp_masking(img).astype(np.uint8) |
|
|
|
|
|
def normalizar_imagem(img): |
|
return np.float32((img - img.min()) / (img.max() - img.min() + 1e-6)) |
|
|
|
if modelo == 'AngioNet' or modelo == 'UNet3+': |
|
img = normalizar_imagem(img) |
|
img_out = np.expand_dims(img, axis=0) |
|
elif modelo == 'SE-RegUNet 4GF': |
|
clahe1 = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8)) |
|
clahe2 = cv2.createCLAHE(clipLimit=8.0, tileGridSize=(8, 8)) |
|
image1 = clahe1.apply(img) |
|
image2 = clahe2.apply(img) |
|
img = normalizar_imagem(img) |
|
image1 = normalizar_imagem(image1) |
|
image2 = normalizar_imagem(image2) |
|
img_out = np.stack((img, image1, image2), axis=0) |
|
else: |
|
clahe1 = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8)) |
|
image1 = clahe1.apply(img) |
|
image1 = normalizar_imagem(image1) |
|
img_out = np.stack((image1,) * 3, axis=0) |
|
|
|
return img_out |