Enoder commited on
Commit
2f6d23b
·
verified ·
1 Parent(s): 8093ef9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -4
app.py CHANGED
@@ -1,7 +1,6 @@
1
  import streamlit as st
2
  import numpy as np
3
- from PIL import Image
4
- import random
5
  from collections import Counter
6
 
7
  # Ensembles pour stocker les pixels validés et non validés
@@ -43,6 +42,14 @@ def generate_image_from_neighbors(base_pixels):
43
 
44
  return Image.fromarray(generated_image)
45
 
 
 
 
 
 
 
 
 
46
  # Interface utilisateur pour télécharger et afficher l'image importée
47
  st.title("Générateur d'images d'animaux basé sur l'image importée")
48
  st.write("Choisissez un animal pour générer une image ou téléchargez une image comme référence.")
@@ -53,15 +60,27 @@ uploaded_file = st.file_uploader("Téléchargez une image de référence (JPG ou
53
  # Initialisation d'une image générée
54
  generated_image = None
55
 
 
 
 
56
  # Génération d'image selon la référence téléchargée
57
  if uploaded_file:
58
  base_pixels = process_uploaded_image(uploaded_file)
59
  st.image(Image.fromarray(base_pixels), caption="Image importée de référence", use_column_width=True)
60
 
 
 
 
 
 
 
 
 
61
  # Bouton pour générer une image
62
  if st.button("Générer une image"):
63
  generated_image = generate_image_from_neighbors(base_pixels)
64
  st.image(generated_image, caption="Image générée", use_column_width=True)
 
65
 
66
  # Options de validation de l'image générée
67
  if generated_image is not None:
@@ -71,7 +90,7 @@ if uploaded_file:
71
  # Enregistrer les pixels de l'image générée dans l'ensemble "oe"
72
  new_pixels = list(generated_image.getdata())
73
  oe.update(map(tuple, new_pixels)) # Ajouter les nouveaux pixels à l'ensemble "oe"
74
- st.success("Image validée!")
75
 
76
  # Réinitialiser l'image générée après validation
77
  generated_image = None
@@ -81,7 +100,7 @@ if uploaded_file:
81
  # Enregistrer les pixels de l'image générée dans l'ensemble "nn"
82
  new_pixels = list(generated_image.getdata())
83
  nn.update(map(tuple, new_pixels)) # Ajouter les nouveaux pixels à l'ensemble "nn"
84
- st.error("Image rejetée!")
85
 
86
  # Réinitialiser l'image générée après rejet
87
  generated_image = None
@@ -90,6 +109,11 @@ if uploaded_file:
90
  st.write("Pixels validés (oe):", len(oe), "pixels enregistrés.")
91
  st.write("Pixels non validés (nn):", len(nn), "pixels enregistrés.")
92
 
 
 
 
 
 
93
  # Option pour réinitialiser les ensembles
94
  if st.button("Réinitialiser les ensembles"):
95
  oe.clear()
 
1
  import streamlit as st
2
  import numpy as np
3
+ from PIL import Image, ImageFilter
 
4
  from collections import Counter
5
 
6
  # Ensembles pour stocker les pixels validés et non validés
 
42
 
43
  return Image.fromarray(generated_image)
44
 
45
+ # Fonction pour appliquer un filtre à l'image
46
+ def apply_filter(image, filter_type):
47
+ if filter_type == "Flou":
48
+ return image.filter(ImageFilter.BLUR)
49
+ elif filter_type == "Contraste":
50
+ return ImageEnhance.Contrast(image).enhance(1.5)
51
+ return image
52
+
53
  # Interface utilisateur pour télécharger et afficher l'image importée
54
  st.title("Générateur d'images d'animaux basé sur l'image importée")
55
  st.write("Choisissez un animal pour générer une image ou téléchargez une image comme référence.")
 
60
  # Initialisation d'une image générée
61
  generated_image = None
62
 
63
+ # Historique des images générées
64
+ image_history = []
65
+
66
  # Génération d'image selon la référence téléchargée
67
  if uploaded_file:
68
  base_pixels = process_uploaded_image(uploaded_file)
69
  st.image(Image.fromarray(base_pixels), caption="Image importée de référence", use_column_width=True)
70
 
71
+ # Options de filtres
72
+ filter_option = st.selectbox("Choisissez un filtre à appliquer :", ["Aucun", "Flou", "Contraste"])
73
+ if filter_option != "Aucun":
74
+ base_image = Image.fromarray(base_pixels)
75
+ base_image = apply_filter(base_image, filter_option)
76
+ st.image(base_image, caption=f"Image avec filtre : {filter_option}", use_column_width=True)
77
+ base_pixels = np.array(base_image) # Mettez à jour les pixels de base
78
+
79
  # Bouton pour générer une image
80
  if st.button("Générer une image"):
81
  generated_image = generate_image_from_neighbors(base_pixels)
82
  st.image(generated_image, caption="Image générée", use_column_width=True)
83
+ image_history.append(generated_image) # Ajoutez l'image générée à l'historique
84
 
85
  # Options de validation de l'image générée
86
  if generated_image is not None:
 
90
  # Enregistrer les pixels de l'image générée dans l'ensemble "oe"
91
  new_pixels = list(generated_image.getdata())
92
  oe.update(map(tuple, new_pixels)) # Ajouter les nouveaux pixels à l'ensemble "oe"
93
+ st.success("Image validée ! Les pixels sont enregistrés.")
94
 
95
  # Réinitialiser l'image générée après validation
96
  generated_image = None
 
100
  # Enregistrer les pixels de l'image générée dans l'ensemble "nn"
101
  new_pixels = list(generated_image.getdata())
102
  nn.update(map(tuple, new_pixels)) # Ajouter les nouveaux pixels à l'ensemble "nn"
103
+ st.error("Image rejetée ! Les pixels sont enregistrés.")
104
 
105
  # Réinitialiser l'image générée après rejet
106
  generated_image = None
 
109
  st.write("Pixels validés (oe):", len(oe), "pixels enregistrés.")
110
  st.write("Pixels non validés (nn):", len(nn), "pixels enregistrés.")
111
 
112
+ # Affichage de l'historique des images générées
113
+ st.write("Historique des images générées:")
114
+ for img in image_history:
115
+ st.image(img, use_column_width=True)
116
+
117
  # Option pour réinitialiser les ensembles
118
  if st.button("Réinitialiser les ensembles"):
119
  oe.clear()