Skip to content
Snippets Groups Projects
Commit 17e03b9d authored by Angy Wallot's avatar Angy Wallot
Browse files

classe

parent 8d017801
No related branches found
No related tags found
No related merge requests found
......@@ -8,16 +8,16 @@ class Bloc:
"""
Creer un bloc contenant des arguments variables
Exemple(s) :
§§§ b1 = Bloc((18,14), True, (255,255,255))
§§§ b1 = Bloc(((18,14),(0,0)), True, (255,255,255))
§§§ b1
Bloc('True' '(18, 14)','(255, 255, 255)')
§§§ b2 = Bloc((52, 86), False)
Bloc('True' '((18,14),(0,0))','(255, 255, 255)')
§§§ b2 = Bloc(((52, 86),(0,0)) False)
§§§ b2
Bloc('False' '(52, 86)')
Bloc('False' '((52, 86),(0,0))')
"""
assert len(args) >= 2 and len(args) <= 3 #2 ou 3 arguments car la taille et l'uniforlité sont nécessaire
assert type(args[0]) == tuple #la taille correspond à un tuple avec deux nombres, le premier etant le pixel en haut à droite et en bas à droite
assert type(args[0]) == tuple #la taille correspond à un tuple avec deux nombres dans chaque elements correspondant respectivement haut gauche et bas droit, le premier etant le pixel en haut à droite et en bas à droite
self.taille = args[0]
assert type(args[1]) == bool
self.uni = args[1]
......@@ -32,9 +32,9 @@ class Bloc:
"""
Renvoie la representation d'un bloc
Exemples:
§§§ b1 = Bloc((18,14), True, (255,255,255))
§§§ b1 = Bloc((18,14),(0,0)), True, (255,255,255))
§§§ b1
Bloc('True' '(18, 14)','(255, 255, 255)')
Bloc('True' '((18,14),(0,0))','(255, 255, 255)')
"""
p_args = f"'{self.uni}' '{self.taille}'"
if self.couleur != (0,0,0):
......@@ -53,19 +53,19 @@ class Bloc:
"""
return self.taille
def decouper_image(im, ordre, taille):
def decouper_image(im, ordre, hautgauche, basdroit):
"""
Fonction qui ...
Fonction qui stockent tout les blocs produits en decoupant l'image dans un fichier csv
Précondition : im doit etre convertit en rgb
"""
if ordre != 0:
b1_taille = ((0,0),(taille[0]//2, taille[1]//2)) # coordonnées correspondant respectivement à en haut à gaucge et en bas à droite
b2_taille = ((taille[0]//2,0),(taille[0], taille[1]//2))
b3_taille = ((0,taille[1]//2),(taille[0]//2,taille[1]))
b4_taille = ((taille[0]//2,taille[1]//2),(taille[0],taille[1]))
couleur_im = couleurs_moyenne(liste_couleur(im, (0,0), taille))
b1_taille = ((0,0),(basdroit[0]//2, basdroit[1]//2)) # coordonnées correspondant respectivement à en haut à gaucge et en bas à droite
b2_taille = ((basdroit[0]//2,0),(basdroit[0], basdroit[1]//2))
b3_taille = ((0,basdroit[1]//2),(basdroit[0]//2,basdroit[1]))
b4_taille = ((basdroit[0]//2,basdroit[1]//2),(basdroit[0],basdroit[1]))
couleur_im = couleurs_moyenne(liste_couleur(im, (0,0), basdroit))
couleur_b1 = couleurs_moyenne(liste_couleur(im, b1_taille[0], b1_taille[1]))
couleur_b2 = couleurs_moyenne(liste_couleur(im, b2_taille[0], b2_taille[1]))
couleur_b3 = couleurs_moyenne(liste_couleur(im, b3_taille[0], b3_taille[1]))
......@@ -76,16 +76,18 @@ def decouper_image(im, ordre, taille):
bloc4 = Bloc(b4_taille,True, couleur_b4)
liste = [bloc1,bloc2,bloc3,bloc4]
for element in liste:
decouper_image(element, ordre-1, element.get_taille())
decouper_image(im, ordre-1, (element.get_taille()[0]),(element.get_taille()[1]))
if distance_entre_deux_images(couleur_im, couleur_b1) and distance_entre_deux_images(couleur_im, couleur_b2) and distance_entre_deux_images(couleur_im, couleur_b3) and distance_entre_deux_images(couleur_im, couleur_b4):
res = Bloc((taille, True, couleurs_moyenne[couleur_b1,couleur_b2,couleur_b3,couleur_b4], taille))
cl_moy = couleurs_moyenne([couleur_b1,couleur_b2,couleur_b3,couleur_b4])
res = Bloc(basdroit, True, cl_moy)
else:
res = Bloc((taille, False))
res = Bloc(basdroit, False)
else:
res = Bloc(taille, True, couleur_im)
couleur_im = couleurs_moyenne(liste_couleur(im, (0,0), basdroit))
res = Bloc(basdroit, True, couleur_im)
return res
decouper_image(im_rgb, 2, (256,256))
decouper_image(im_rgb, 2, (0,0), (5,5))
......
from PIL import Image, ImageDraw
def couleurs_moyenne(liste:list[tuple])->list:
def couleurs_moyenne(liste:list[tuple])->tuple:
"""
FOnction qui calcule la moyenne dans une liste
Précondition : Chaque tuple doit contenir 3 valeurs
Exemple(s) :
$$$ couleurs_moyenne([(1,2,3),(4,5,6),(7,8,9)])
[4, 5, 6]
(4, 5, 6)
$$$ couleurs_moyenne([(255, 0, 0), (0, 255, 0),(0, 0, 255)])
[85, 85, 85]
(85, 85, 85)
"""
r = 0
......
......@@ -3,4 +3,5 @@ Auteur: Angy Wallot
JOURNAL:
06/03/24: lecture + plan
20/03/24: debut de la classe et de la fonction decoupe
27/03/24: fonction couleur_moyenne, liste_couleur, distance_entre_deux_images, essaie de convertir mes fonctions dans la classe.
27/03/24: fonction couleur_moyenne, liste_couleur, distance_entre_deux_images, essai de convertir mes fonctions dans la classe.
28/03/24: correction de la fonction decouper image pour qu'elle fonctionne avec la classe, correction corrcte il faut maintenant que je remplace mon res par un algotithme permettant d'enregistrer le bloc dans un fichier csv
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment