diff --git a/Projet/main.py b/Projet/main.py
index c0fadbd315ad29e9708b4565ecb187a314677993..cd696a84c6e4a907f5183d5ad59e61e9573385f3 100644
--- a/Projet/main.py
+++ b/Projet/main.py
@@ -6,7 +6,7 @@ def main():
     # valeurs statics pour nom_image , order et action
     
     nom_image = "cal.png"
-    order = 3 #exemple d'ordre 3
+    ordre = 3 #exemple d'ordre 3
     action = "affiche"
 
     # Charger l'image
@@ -14,7 +14,7 @@ def main():
     input_image = Image.open(nom_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
     if action == "affiche":
diff --git a/Projet/readme.md b/Projet/readme.md
index 8147b7a484a54c5ed686d79ac451ca4ede153732..2a25788d3d2ca40b95bc1ddf26d051bf26747954 100644
--- a/Projet/readme.md
+++ b/Projet/readme.md
@@ -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.
  
- 
+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
diff --git a/Projet/traite_img.py b/Projet/traite_img.py
index 20fb09852437ef40972f8ee62c29e461d3732dcb..56222d7cafa6ef0940779891662d6186feab23ce 100644
--- a/Projet/traite_img.py
+++ b/Projet/traite_img.py
@@ -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
+    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)