👤

Bonjour j'ai avancé dans mon devoir de SNT mais ne parvient pas à mettre mon image en niveau de gris et ect..., en effet, j'ai une fiche explicative très succincte que je ne comprend guère plus... Auriez-vous l'amabilité de m'aider ? Voici l'énoncé et la fiche en fichier joint :
En utilisant le fichier aide_algo_photos.png, qui indique de manière très succincte les différentes manipulations permettant de modifier les couleurs d’un pixel, a vous de créer les images suivantes :

Image en nuance de gris :


Image en négatif :

Modification de l’image : apparition d’une diagonale :

(les images sont également ci-jointes)
Merci de votre patience ainsi que de votre gentillesse :)

Bonjour Jai Avancé Dans Mon Devoir De SNT Mais Ne Parvient Pas À Mettre Mon Image En Niveau De Gris Et Ect En Effet Jai Une Fiche Explicative Très Succincte Que class=
Bonjour Jai Avancé Dans Mon Devoir De SNT Mais Ne Parvient Pas À Mettre Mon Image En Niveau De Gris Et Ect En Effet Jai Une Fiche Explicative Très Succincte Que class=
Bonjour Jai Avancé Dans Mon Devoir De SNT Mais Ne Parvient Pas À Mettre Mon Image En Niveau De Gris Et Ect En Effet Jai Une Fiche Explicative Très Succincte Que class=
Bonjour Jai Avancé Dans Mon Devoir De SNT Mais Ne Parvient Pas À Mettre Mon Image En Niveau De Gris Et Ect En Effet Jai Une Fiche Explicative Très Succincte Que class=

Sagot :

Bonjour,

Tu as mes essais sur une image de Fumseck ci-joint.

Modules utiles:

from PIL import Image

import numpy as np #Disponible sur Spyder, Jupyter (il me semble), EduPython peut-être mais pas directement sur l'IDLE de Python.

Image colorée:

image = np.array(Image.open("image.png")) #On récupère l'image sous forme de tableau Numpy.

nb_l, nb_c = image.shape[0], image.shape[1]

for i in range(nb_l): #Parcours des lignes.

   for j in range(nb_c): #Parcours des colonnes.

       r, g, b = image[i, j] #On récupère les informations liées au pixel.

       image[i, j] = (g, b, r)

Image.fromarray(image).save("coloree.png")

Image en nuance de gris:

image = np.array(Image.open("image.png"))

nb_l, nb_c = image.shape[0], image.shape[1]

for i in range(nb_l): #Parcours des lignes.

   for j in range(nb_c): #Parcours des colonnes.

       r, g, b = image[i, j] #On récupère les informations liées au pixel.

       g = int(0.11*r + 0.83*g + 0.06*b) #On forme le gris.

       image[i, j] = (g, g, g)

Image.fromarray(image).save("gris.png")

Image en négatif:

image = np.array(Image.open("image.png"))

Image.fromarray(255 - image).save("negatif.png") #Là on voit l'avantage des tableaux Numpy, si tu n'as pas le droit à Numpy, il va falloir parcourir la double liste comme j'ai fait sur les deux exemples précédents.

Image avec la diagonale:

C'est trop mathématiques, je te laisse le plaisir de regarder sur le net l'algorithme de Bresenham qui permet d'avoir la diagonale et donc surtout les coordonnées des points au-dessus ou en-dessous de celle-ci.

Après faut passer en nuance de gris le fond en épargnant la pomme, pour ça tu peux réutiliser g = int(0.11*r + 0.83*g + 0.06*b) avec comme condition que r, g, b forment bien du bleu donc que b est élevé et que r, g soient faibles.

Globalement, il faut une question du type:

if r < 200 and g < 200 and b > 200: #A ajuster s'il des pixels persistent, tu peux utiliser paint pour connaître le codage RGB des pixels.

Bonne journée.

View image THOMAS756
View image THOMAS756
View image THOMAS756
View image THOMAS756

© 2024 IDNLearn. All rights reserved.