Pour la prochaine fois, il vaut mieux poster dans "informatique" plutôt que" mathématiques" ce type d'exercice.
Les mathématiciens ne vont pas forcément plus loin que juste faire un peu de graphique et des fonctions de calculs. Le traitement d'image ça ne les intéresse pas forcément.
1)
from PIL import Image
img1 = Image.open("eren.png")
p = img1.getpixel((0, 0))
print(p)
On obtient (0, 0, 0, 0). Tu n'as peut-être pas la dernière colonne, dans ce cas tu pourras retirer ce quatrième paramètre dans toute la suite mais moi je l'ai à partir des images que j'ai téléchargé directement de ton fichier que toi tu as séparément.
Ce tuple donne les valeurs (R, G, B, A) avec R la quantité de Rouge (Red), G de Vert (Green), B de Bleu (Blue) et A est l'opacité (canal alpha). Le codage RGB (ou RVB en français) code chaque couleur sur 8 bits et permet ainsi d'obtenir 2⁸ = 256 nuances pour chaque couleur donc une palette de 256³ = 16.777.216 couleurs ! Si la couleur est à 0 alors elle n'est pas présente et si elle est à 255 alors elle est complétement présente.
Le pixel en position (0, 0), donc le premier pixel en haut à gauche, est noir et complétement transparent, ce qui est cohérent avec le contour de l'image qui est noir.
2) et 3)
from PIL import Image
img1 = Image.open("eren.png")
xmax, ymax = img1.size #On récupère les dimensions de l'image, je n'ai pas les mêmes que toi. Toi tu pourras mettre 625 et 416 directement.
a = 0
for x in range(xmax):
for y in range(ymax):
p = img1.getpixel((x, y))
if p == (0, 255, 0, 255): #Si le pixel est vert.
a += 1 #On peut aussi écrire a = a + 1.
print(a)
4)
Je ne peux pas le faire à ta place.
5)
J'obtiens pour ma part 167596 (c'est normal si tu trouves un nombre plus élevé puisque tu as une image plus grande que celle que j'ai).
6)
Je ne peux pas le faire à ta place.
7)
from PIL import Image
img1 = Image.open("eren.png")
xmax, ymax = img1.size
a = 0
for x in range(xmax):
for y in range(ymax):
p = img1.getpixel((x, y))
if p == (0, 255, 0, 255):
img1.putpixel((x, y), (255, 0, 0))
img1.save("erenrouge.png")
Si de ton côté tu as aussi un contour vert qui reste (je l'ai peut-être à cause de la diminution de l'image), je te propose d'élargir la condition:
from PIL import Image
img1 = Image.open("eren.png")
xmax, ymax = img1.size
a = 0
for x in range(xmax):
for y in range(ymax):
p = img1.getpixel((x, y))
if p[0] < 150 and p[1] > 150 and p[2] < 150:
img1.putpixel((x, y), (255, 0, 0))
img1.save("erenrouge.png")
De mon côté, il reste un peu de vert encore mais si on élargit plus les autres couleurs (en dehors du vert) vont aussi être prises en compte.
8)
Pas de difficulté.
9)
Je ne peux pas le faire pour toi.
10)
from PIL import Image
img1 = Image.open("eren.png")
img2 = Image.open("paysage.jpg")
xmax, ymax = img1.size
a = 0
for x in range(xmax):
for y in range(ymax):
p = img1.getpixel((x, y))
if p == (0, 255, 0, 255): #Prend l'autre condition vu ci-dessus si nécessaire.
q = img2.getpixel((x, y))
img1.putpixel((x, y), q)
img1.save("eren_paysage.png")
11)
Tu essayes de ton côté.
De mon côté j'obtiens la première image ci-joint si je mets la condition la plus simple p == (0, 255, 0, 255).
Et la deuxième image avec la condition un peu plus complexe.
Avec un peu de chance, ton image sera vraiment faite de pixels complétement verts !
Lista de comentários
Bonsoir,
Pour la prochaine fois, il vaut mieux poster dans "informatique" plutôt que" mathématiques" ce type d'exercice.
Les mathématiciens ne vont pas forcément plus loin que juste faire un peu de graphique et des fonctions de calculs. Le traitement d'image ça ne les intéresse pas forcément.
1)
from PIL import Image
img1 = Image.open("eren.png")
p = img1.getpixel((0, 0))
print(p)
On obtient (0, 0, 0, 0). Tu n'as peut-être pas la dernière colonne, dans ce cas tu pourras retirer ce quatrième paramètre dans toute la suite mais moi je l'ai à partir des images que j'ai téléchargé directement de ton fichier que toi tu as séparément.
Ce tuple donne les valeurs (R, G, B, A) avec R la quantité de Rouge (Red), G de Vert (Green), B de Bleu (Blue) et A est l'opacité (canal alpha). Le codage RGB (ou RVB en français) code chaque couleur sur 8 bits et permet ainsi d'obtenir 2⁸ = 256 nuances pour chaque couleur donc une palette de 256³ = 16.777.216 couleurs ! Si la couleur est à 0 alors elle n'est pas présente et si elle est à 255 alors elle est complétement présente.
Le pixel en position (0, 0), donc le premier pixel en haut à gauche, est noir et complétement transparent, ce qui est cohérent avec le contour de l'image qui est noir.
2) et 3)
from PIL import Image
img1 = Image.open("eren.png")
xmax, ymax = img1.size #On récupère les dimensions de l'image, je n'ai pas les mêmes que toi. Toi tu pourras mettre 625 et 416 directement.
a = 0
for x in range(xmax):
for y in range(ymax):
p = img1.getpixel((x, y))
if p == (0, 255, 0, 255): #Si le pixel est vert.
a += 1 #On peut aussi écrire a = a + 1.
print(a)
4)
Je ne peux pas le faire à ta place.
5)
J'obtiens pour ma part 167596 (c'est normal si tu trouves un nombre plus élevé puisque tu as une image plus grande que celle que j'ai).
6)
Je ne peux pas le faire à ta place.
7)
from PIL import Image
img1 = Image.open("eren.png")
xmax, ymax = img1.size
a = 0
for x in range(xmax):
for y in range(ymax):
p = img1.getpixel((x, y))
if p == (0, 255, 0, 255):
img1.putpixel((x, y), (255, 0, 0))
img1.save("erenrouge.png")
Si de ton côté tu as aussi un contour vert qui reste (je l'ai peut-être à cause de la diminution de l'image), je te propose d'élargir la condition:
from PIL import Image
img1 = Image.open("eren.png")
xmax, ymax = img1.size
a = 0
for x in range(xmax):
for y in range(ymax):
p = img1.getpixel((x, y))
if p[0] < 150 and p[1] > 150 and p[2] < 150:
img1.putpixel((x, y), (255, 0, 0))
img1.save("erenrouge.png")
De mon côté, il reste un peu de vert encore mais si on élargit plus les autres couleurs (en dehors du vert) vont aussi être prises en compte.
8)
Pas de difficulté.
9)
Je ne peux pas le faire pour toi.
10)
from PIL import Image
img1 = Image.open("eren.png")
img2 = Image.open("paysage.jpg")
xmax, ymax = img1.size
a = 0
for x in range(xmax):
for y in range(ymax):
p = img1.getpixel((x, y))
if p == (0, 255, 0, 255): #Prend l'autre condition vu ci-dessus si nécessaire.
q = img2.getpixel((x, y))
img1.putpixel((x, y), q)
img1.save("eren_paysage.png")
11)
Tu essayes de ton côté.
De mon côté j'obtiens la première image ci-joint si je mets la condition la plus simple p == (0, 255, 0, 255).
Et la deuxième image avec la condition un peu plus complexe.
Avec un peu de chance, ton image sera vraiment faite de pixels complétement verts !
Bonne soirée.