From 51e10daebf08e800fee85140a3b4d8bd19417a3f Mon Sep 17 00:00:00 2001 From: Louis Chmielewski <louis.chmielewski@icloud.com> Date: Tue, 26 Mar 2024 18:48:44 +0100 Subject: [PATCH] decoupe_image et modif bloc.py --- Projet/README.md | 6 ++++++ Projet/decoupe_image.py | 24 +++++++++++++++--------- Projet/src/bloc.py | 24 ++++++++++++------------ 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/Projet/README.md b/Projet/README.md index fd2b270..1922deb 100644 --- a/Projet/README.md +++ b/Projet/README.md @@ -24,3 +24,9 @@ author : Louis Chmielewski - 24/03 : petite modification de la méthode init pour la class bloc - 24/03 : début réalisation de la fonction découpe_image +- 26/03 : création du script de conversion de fichier csv en fichier png +- 26/03 : corrections d'erreurs dans bloc.py +- 26/03 : réalisation de la fonction decoupe_image + + + diff --git a/Projet/decoupe_image.py b/Projet/decoupe_image.py index 410ceaf..1647bf4 100755 --- a/Projet/decoupe_image.py +++ b/Projet/decoupe_image.py @@ -11,6 +11,7 @@ """ from PIL import Image, ImageDraw from bloc import Bloc +import manip_couleurs #importer image et recuperer sa taille @@ -30,15 +31,20 @@ def decoupe_image(image: Bloc, ordre: int) -> Bloc: """ image.pixel_hl = (0,0) image.pixel_lr = im.size -# if ordre !=0: -# en_4_blocs(bloc) -# decoupe_image(*arg: list[Bloc], ordre-1) -# if sont_4_blocs_uniformes_proches(bloc1, bloc2, bloc3, bloc4): -# # fonction à définir dans la classe bloc -# else: -# # fonction à définir dans la classe bloc -# else: -# # fonction à définir dans la classe bloc + if ordre !=0: + en_4_blocs(bloc) + decoupe_image(*arg: list[Bloc], ordre-1) + if sont_4_blocs_uniformes_proches[bloc1, bloc2, bloc3, bloc4]: + return new_bloc = moyenne_couleur_bloc(moyenne_couleur_bloc(bloc1),\ + moyenne_couleur_bloc(bloc2),\ + moyenne_couleur_bloc(bloc3),\ + moyenne_couleur_bloc(bloc4)) + else: + new_bloc = [bloc1, bloc2, bloc3, bloc4] + return new_bloc + else: + new_bloc = [bloc1, bloc2, bloc3, bloc4] + return new_bloc diff --git a/Projet/src/bloc.py b/Projet/src/bloc.py index 2a96b58..17167fe 100755 --- a/Projet/src/bloc.py +++ b/Projet/src/bloc.py @@ -34,7 +34,7 @@ class Bloc: """ return self.bloc == other.bloc - def est_bloc_uniforme(bloc1:Bloc, bloc2:Bloc, bloc3:Bloc, bloc4:Bloc)->bool: + def est_bloc_uniforme(liste_bloc: list[Bloc, Bloc, Bloc, Bloc])->bool: """ Renvoie True si le bloc est un bloc uniforme, c'est à dire si les 4 couleurs du bloc sont proches Précondition : aucune @@ -42,9 +42,9 @@ class Bloc: $$$ """ - return est_couleur_proche(moyenne_couleur_bloc(bloc1), moyenne_couleur_bloc(bloc2)) and \ - est_couleur_proche(moyenne_couleur_bloc(bloc1), moyenne_couleur_bloc(bloc3)) and \ - est_couleur_proche(moyenne_couleur_bloc(bloc1), moyenne_couleur_bloc(bloc4)) + return est_couleur_proche(moyenne_couleur_bloc(liste_bloc[0]), moyenne_couleur_bloc(liste_bloc[1])) and \ + est_couleur_proche(moyenne_couleur_bloc(liste_bloc[0]), moyenne_couleur_bloc(liste_bloc[2])) and \ + est_couleur_proche(moyenne_couleur_bloc(liste_bloc[0]), moyenne_couleur_bloc(liste_bloc[3])) def est_bloc_non_uniforme()-> bool: @@ -58,7 +58,7 @@ class Bloc: """ return not(est_bloc_uniforme()) - def sont_4_blocs_uniformes_proches(bloc1: Bloc, bloc2: Bloc, bloc3: Bloc, bloc4: Bloc)-> bool: + def sont_4_blocs_uniformes_proches(liste_bloc: list[Bloc, Bloc, Bloc, Bloc])-> bool: """ Renvoie True si les 4 blocs uniformes sont proches Précondition : aucune @@ -69,9 +69,8 @@ class Bloc: False """ res = False - parametres = [bloc1, bloc2, bloc3, bloc4] - if all(est_bloc_uniforme(parametres)): - for i in parametres(1,len(parametres)-1): + if all(est_bloc_uniforme(liste_bloc)): + for i in range(1,len(liste_bloc)-1): if est_couleur_proche(bloc1, bloc[i]): res = True return res @@ -86,14 +85,15 @@ class Bloc: """ bloc1 = pixel_hl = image.getpixel((0, 0)) and \ - pixel_lr = image.getpixel((largeur/2, hauteur/2)) \ + pixel_lr = image.getpixel((largeur/2, hauteur/2)) bloc2 = pixel_hl = image.getpixel((largeur/2, 0)) and \ - pixel_lr = image.getpixel((largeur, hauteur/2)) \ + pixel_lr = image.getpixel((largeur, hauteur/2)) bloc3 = pixel_hl = image.getpixel((0, hauteur/2)) and \ - pixel_lr = image.getpixel((largeur/2, hauteur)) \ + pixel_lr = image.getpixel((largeur/2, hauteur)) bloc4 = pixel_hl = image.getpixel((largeur/2, hauteur/2)) and \ pixel_lr = image.getpixel((largeur, hauteur)) - return [bloc1, bloc2, bloc3, bloc4] + new_bloc = [bloc1, bloc2, bloc3, bloc4] + return new_bloc -- GitLab