You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.4 KiB
43 lines
1.4 KiB
import cv2
|
|
import numpy as np
|
|
from tensorflow.keras.models import load_model
|
|
from tensorflow.keras.losses import MeanSquaredError
|
|
|
|
def generate_aged_image(model, noise_dim):
|
|
# Générer un vecteur de bruit
|
|
noise = np.random.normal(0, 1, (1, noise_dim))
|
|
|
|
# Générer l'image vieillie
|
|
generated_img = model.predict(noise)
|
|
|
|
print(generated_img)
|
|
print(type(generated_img[0][0]))
|
|
print(f"Shape of generated image: {generated_img.shape}")
|
|
print(f"Generated image values (min, max): {generated_img.min()}, {generated_img.max()}")
|
|
|
|
generated_img = np.clip(generated_img[0], 0, 1) # S'assurer que les valeurs sont entre 0 et 1
|
|
generated_img = (generated_img * 255).astype(np.uint8)
|
|
|
|
# Convertir en BGR pour OpenCV
|
|
generated_img_bgr = cv2.cvtColor(generated_img, cv2.COLOR_RGB2BGR)
|
|
|
|
return generated_img_bgr
|
|
|
|
def main():
|
|
# Chemin vers le modèle et l'image
|
|
model_path = "models/generator_epoch_7400.h5"
|
|
output_path = "visage_aged.jpg"
|
|
|
|
# Charger le modèle
|
|
model = load_model(model_path, custom_objects={'mse': MeanSquaredError()})
|
|
print("Modèle chargé avec succès !")
|
|
|
|
# Générer l'image vieillie
|
|
aged_image = generate_aged_image(model, noise_dim=100)
|
|
|
|
# Sauvegarder l'image résultante
|
|
cv2.imwrite(output_path, aged_image)
|
|
print(f"Image vieillie sauvegardée sous {output_path}")
|
|
|
|
if __name__ == "__main__":
|
|
main() |