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