Skip to content
Snippets Groups Projects
Commit 688673f0 authored by Votre Nom's avatar Votre Nom
Browse files

definition_process_img()_et_actualisation_du_readme

parent b38e98f4
No related branches found
No related tags found
No related merge requests found
...@@ -6,7 +6,7 @@ def main(): ...@@ -6,7 +6,7 @@ def main():
# valeurs statics pour nom_image , order et action # valeurs statics pour nom_image , order et action
nom_image = "cal.png" nom_image = "cal.png"
order = 3 #exemple d'ordre 3 ordre = 3 #exemple d'ordre 3
action = "affiche" action = "affiche"
# Charger l'image # Charger l'image
...@@ -14,7 +14,7 @@ def main(): ...@@ -14,7 +14,7 @@ def main():
input_image = Image.open(nom_image) input_image = Image.open(nom_image)
# Traiter l'image # Traiter l'image
output_image = app.process_image(input_image, order) output_image = traite_img.process_image(input_image, ordre)
# Afficher l'image en fonction de l'action # Afficher l'image en fonction de l'action
if action == "affiche": if action == "affiche":
......
...@@ -14,4 +14,12 @@ traite_img : ...@@ -14,4 +14,12 @@ traite_img :
ce module contient les fonctions naicessaires au traitement des images, il contient la fonction principale process_image() qui prend une image et un ordre en entrée.L'ordre détermine le niveau de récursivité de l'algorithme. À chaque niveau de récursion, l'image est divisée en quatre blocs, et l'algorithme est appliqué récursivement à chaque bloc. Ensuite, il vérifie si les blocs sont suffisamment proches en couleur. S'ils le sont, il crée un bloc uniforme avec la couleur moyenne. Sinon, il fusionne les quatre blocs. ce module contient les fonctions naicessaires au traitement des images, il contient la fonction principale process_image() qui prend une image et un ordre en entrée.L'ordre détermine le niveau de récursivité de l'algorithme. À chaque niveau de récursion, l'image est divisée en quatre blocs, et l'algorithme est appliqué récursivement à chaque bloc. Ensuite, il vérifie si les blocs sont suffisamment proches en couleur. S'ils le sont, il crée un bloc uniforme avec la couleur moyenne. Sinon, il fusionne les quatre blocs.
26/03/2024 :
j'ai reflechi à la structure du module traite_img et j'ai codé la fonction process_img qui s'occupe du traitement totale de l'image en faisant appel à d'autres fonction dont chaqu'une s'occupe d'une tache specifique et qu'ils sont les suivants :
- diviser_image() : cette fonction divise l'image en 4 blocs
- average_rgb() : Cette fonction calcule la couleur moyenne de l'image en termes de composantes (RGB)
- sont_blocs_proches() : qui calcule la moyenne de chaque bloc et verifie si les couleurs sont assez proches, dans ce cas j'ai pris un seuil de 20 pixels
- creer_bloc_uniforme() : cette fonction cree un bloc uniforme à partir d'une liste de blocs d'images en utilisant la couleur moyenne des blocs
- fusionner_blocs() : Cette fonction prend une liste de quatre blocs d'images et les fusionne pour créer une seule image contenant ces quatre blocs
...@@ -11,3 +11,25 @@ def process_image(image, ordre): ...@@ -11,3 +11,25 @@ def process_image(image, ordre):
""" """
# Cas de base : si l'ordre est zéro, crée et renvoie un bloc de la couleur moyenne de l'image # Cas de base : si l'ordre est zéro, crée et renvoie un bloc de la couleur moyenne de l'image
if ordre == 0:
largeur, hauteur = image.size
couleur_moyenne_rgb = average_rgb(image)
bloc_uniforme = Image.new("RGB", (largeur, hauteur), couleur_moyenne_rgb)
return bloc_uniforme
# Diviser l'image en quatre blocs
blocs = diviser_image(image)
# Appliquer l'algorithme à chaque bloc récursivement
blocs_traites = []
for bloc in blocs:
bloc_traite = process_image(bloc, ordre - 1)
blocs_traites.append(bloc_traite)
# Vérifier si les blocs sont proches en couleur
if sont_blocs_proches(blocs_traites):
# Si c'est le cas, créer un bloc uniforme avec la couleur moyenne
return creer_bloc_uniforme(blocs_traites)
else:
# Sinon, créer un bloc contenant les quatre blocs traités
return fusionner_blocs(blocs_traites)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment