Corrigés des programmes sur les images
Méthode : 16 - jocondes
1
size(408,320)
2
img=loadImage("data/joconde.png")
3
for x in range(0,408,102):
4
for y in range(0,320,80):
5
image(img,x,y,102,80)
Méthode : En vert
1
2
def calculindex(x,y):#le calcul de l'index
3
return x+y*408
4
5
def setup():
6
size(408,320)# taille de la fenêtre
7
img=loadImage("data/joconde.png")#chargement de l'image
8
img2=createImage(408,320,RGB)# création d'une image vide
9
for x in range(0,408,1):# pour tous les pixels de l'image
10
for y in range(0,320,1):
11
index=calculindex(x,y)# calcul de l'index
12
r=red(img.pixels[index])#composante rouge du pixel de l'image
13
g=green(img.pixels[index])
14
b=blue(img.pixels[index])
15
img2.pixels[index]=color(r,255,b)# remplissage de l'image vide
16
image(img2,0,0)# affichage des images
17
image(img,0,0,102,80)
Méthode : Niveau de gris
1
def calculindex(x,y):#le calcul de l'index
2
return x+y*408
3
4
def setup():
5
size(408,320)# taille de la fenêtre
6
img=loadImage("data/joconde.png")#chargement de l'image
7
img2=createImage(408,320,RGB)# création d'une image vide
8
for x in range(0,408,1):# pour tous les pixels de l'image
9
for y in range(0,320,1):
10
index=calculindex(x,y)# calcul de l'index
11
r=red(img.pixels[index])#composante rouge du pixel de l'image
12
g=green(img.pixels[index])
13
b=blue(img.pixels[index])
14
c=(r+g+b)/3
15
img2.pixels[index]=color(c,c,c)# remplissage de l'image vide
16
image(img2,0,0)# affichage des images
17
image(img,0,0,102,80)
Méthode : Niveau de gris (EduPython)
1
# Créé par vstep, le 31/01/2019 en Python 3.4
2
from PIL import Image
3
from pylab import *
4
5
# chargement des images
6
img=Image.open("joconde.png")
7
largeur,hauteur=img.size
8
#création d'une image vide
9
img2=Image.new('RGB',(largeur,hauteur))
10
11
#traitement
12
for y in range(hauteur):
13
for x in range(largeur):
14
r,v,b,a=img.getpixel((x,y))
15
c=(v+b+r)//3
16
img2.putpixel((x,y),(c,c,c))
17
18
#affichage
19
subplot(1,2,1)
20
xticks([]), yticks([])
21
title('La joconde')
22
plt.imshow(img)
23
24
subplot(1,2,2)
25
xticks([]), yticks([])
26
title('La joconde en niveau de gris')
27
plt.imshow(img2)
28
29
show()
30
31
Méthode : Noir et blanc
1
def calculindex(x,y):#le calcul de l'index
2
return x+y*408
3
4
def setup():
5
size(408,320)# taille de la fenêtre
6
img=loadImage("data/joconde.png")#chargement de l'image
7
img2=createImage(408,320,RGB)# création d'une image vide
8
for x in range(0,408,1):# pour tous les pixels de l'image
9
for y in range(0,320,1):
10
index=calculindex(x,y)# calcul de l'index
11
r=red(img.pixels[index])#composante rouge du pixel de l'image
12
g=green(img.pixels[index])
13
b=blue(img.pixels[index])
14
c=(r+g+b)/3
15
if c>127:
16
c=255
17
else:
18
c=0
19
img2.pixels[index]=color(c,c,c)# remplissage de l'image vide
20
image(img2,0,0)# affichage des images
21
image(img,0,0,102,80)
22
23
Méthode : Flou
1
def calculindex(x,y):
2
return x+y*width
3
4
def setup():
5
size(408,320)
6
img=loadImage("data/joconde.png")
7
img2=createImage(408,320,RGB)
8
print(red(img.pixels[calculindex(100,100)]))
9
for x in range(1,407,1):
10
for y in range(1,319,1):
11
index1=calculindex(x-1,y-1)
12
index2=calculindex(x,y-1)
13
index3=calculindex(x+1,y-1)
14
index4=calculindex(x-1,y)
15
index5=calculindex(x,y)
16
index6=calculindex(x+1,y)
17
index7=calculindex(x-1,y+1)
18
index8=calculindex(x,y+1)
19
index9=calculindex(x+1,y+1)
20
r=(red(img.pixels[index1])+red(img.pixels[index2])+red(img.pixels[index3])+red(img.pixels[index4])+red(img.pixels[index5])+red(img.pixels[index6])+red(img.pixels[index7])+red(img.pixels[index8])+red(img.pixels[index9]))/9
21
g=(green(img.pixels[index1])+green(img.pixels[index2])+green(img.pixels[index3])+green(img.pixels[index4])+green(img.pixels[index5])+green(img.pixels[index6])+green(img.pixels[index7])+green(img.pixels[index8])+green(img.pixels[index9]))/9
22
b=(blue(img.pixels[index1])+blue(img.pixels[index2])+blue(img.pixels[index3])+blue(img.pixels[index4])+blue(img.pixels[index5])+blue(img.pixels[index6])+blue(img.pixels[index7])+blue(img.pixels[index8])+blue(img.pixels[index9]))/9
23
img2.pixels[index5]=color(r,g,b)
24
updatePixels()
25
image(img2,0,0)
26
image(img,0,0,102,80)
Méthode : Contours
1
def calculindex(x,y):
2
return x+y*815
3
4
def setup():
5
size(815,457)
6
img=loadImage("data/image1.png")
7
img2=createImage(815,457,RGB)
8
for x in range(1,814,1):
9
for y in range(1,456,1):
10
index1=calculindex(x-1,y-1)
11
index2=calculindex(x,y-1)
12
index3=calculindex(x+1,y-1)
13
index4=calculindex(x-1,y)
14
index5=calculindex(x,y)
15
index6=calculindex(x+1,y)
16
index7=calculindex(x-1,y+1)
17
index8=calculindex(x,y+1)
18
index9=calculindex(x+1,y+1)
19
r=(red(img.pixels[index2])+red(img.pixels[index4])+red(img.pixels[index5])*(-4)+red(img.pixels[index6])+red(img.pixels[index8]))
20
g=(green(img.pixels[index1])*0+green(img.pixels[index2])*1+green(img.pixels[index3])*0+green(img.pixels[index4])*1+green(img.pixels[index5])*(-4)+green(img.pixels[index6])*1+green(img.pixels[index7])*0+green(img.pixels[index8])*1+green(img.pixels[index9])*0)
21
b=(blue(img.pixels[index1])*0+blue(img.pixels[index2])*1+blue(img.pixels[index3])*0+blue(img.pixels[index4])*1+blue(img.pixels[index5])*(-4)+blue(img.pixels[index6])*1+blue(img.pixels[index7])*0+blue(img.pixels[index8])*1+blue(img.pixels[index9])*0)
22
img2.pixels[index5]=color(r,g,b)
23
image(img2,0,0)
24
image(img,0,0,102,80)