File size: 1,315 Bytes
0e81e46 575c2e6 0e81e46 0cf7d03 |
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 29 30 31 32 33 34 |
import cv2
from preprocess import unsharp_masking
# Função para pré-processar a imagem com base no modelo selecionado
def preprocessar_imagem(img, modelo='SE-RegUNet 4GF'):
# Redimensionar a imagem para 512x512
img = cv2.resize(img, (512, 512))
# Aplicar a máscara de nitidez à imagem
img = unsharp_masking(img).astype(np.uint8)
# Função auxiliar para normalizar a imagem
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 |