Skip to content
Snippets Groups Projects
Commit 95ca2ce4 authored by Belkacemi Melissa's avatar Belkacemi Melissa
Browse files

decoupe

parent d4af03fe
Branches
No related tags found
No related merge requests found
from PIL import Image, ImageDraw
from bloc import *
from couleur import *
def decoupe(image:Image,p_hg,p_bd,n:int)->Bloc:
"""à_remplacer_par_ce_que_fait_la_fonction
Précondition :n>=0
"""
if n >0:
b1,b2,b3,b4=quatre_blocs(image,hg,bd)
decoupe(b1,n-1,b1.pixel_hg,b1.pixel_bd)
decoupe(b2,n-1,b2.pixel_hg,b2.pixel_bd)
decoupe(b3,n-1,b3.pixel_hg,b3.pixel_bd)
decoupe(b4,n-1,b4.pixel_hg,b4.pixel_bd)
if sont_proches(b1,b2,b3,b4):
return(Bloc(couleur_moyenne([b1.couleur,b2.couleur,b3.couleur,b4.couleur]),b1.pixel_hg,b4.pixel_bd))
else:
return(Bloc((0,0,0),b1.pixel_hg,b4.pixel_bd,b1,b2,b3,b4))
else:
couleurs=[im_rgb.getpixel((i,j)) for i in range(hg[0],1+bd[0]) for j in range(hg[1],1+bd[1])]
coul_moyenne=couleur_moyenne(couleurs)
return Bloc(coul_moyenne,(0,0),(bd[0],bd[1]))
def quatre_blocs(im:Image,hg:tuple[int,int],bd:tuple[int,int])->tuple[Bloc,Bloc,Bloc,Bloc]:
"""découpe une image en 4 blocs
"""
pixel_hg1=hg
pixel_bd1=((bd[0]+hg[0])//2,(bd[1]+hg[1])//2)
pixel_hg2=((bd[0]+hg[0])//2,hg[1])
pixel_bd2=(bd[0],(bd[1]+hg[1])//2)
pixel_hg3=(hg[0],(bd[1]+hg[1])//2)
pixel_bd3=((bd[0]+hg[0])//2,bd[1])
pixel_hg4=((bd[0]+hg[0])//2,(bd[1]+hg[1])//2)
pixel_bd4=bd
couleurs1=[im.getpixel((i,j)) for i in range(pixel_hg1[0],1+pixel_bd1[0]) for j in range(pixel_hg1[1],1+pixel_bd1[1])]
couleurs2=[im.getpixel((i,j)) for i in range(pixel_hg2[0],1+pixel_bd2[0]) for j in range(pixel_hg2[1],1+pixel_bd2[1])]
couleurs3=[im.getpixel((i,j)) for i in range(pixel_hg3[0],1+pixel_bd3[0]) for j in range(pixel_hg3[1],1+pixel_bd3[1])]
couleurs4=[im.getpixel((i,j)) for i in range(pixel_hg4[0],1+pixel_bd4[0]) for j in range(pixel_hg4[1],1+pixel_bd4[1])]
return (Bloc(couleur_moyenne(couleurs1),pixel_hg1,pixel_bd1),Bloc(couleur_moyenne(couleurs2),pixel_hg2,pixel_bd2),Bloc(couleur_moyenne(couleurs3),pixel_hg3,pixel_bd3),Bloc(couleur_moyenne(couleurs4),pixel_hg4,pixel_bd4))
im = Image.open('images/calbuth.png')
t=im.size
hg=(0,0)
bd=(t[0]-1,t[1]-1)
im_rgb = im.convert('RGB')
b=decoupe(im_rgb,hg,bd,1)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment