Étude des manipulations d'images avec Python.
Le but de cette activité est d'apprendre à manipuler une image numérique en utilisant le langage de programmation Python. Vous allez apprendre à traiter par programme une image en agissant sur les trois composantes de ses pixels.
1️⃣ Introduction (10 minutes):
Dans cette activité, vous allez découvrir comment manipuler une image numérique en utilisant Python. Vous apprendrez à appliquer différentes transformations à une image pour obtenir des effets visuels intéressants.
2️⃣ Présentation du scénario (5 minutes) :
Imaginez que vous êtes un photographe numérique travaillant sur une série d'images. Votre tâche consiste à appliquer des transformations à ces images pour obtenir des résultats uniques et créatifs.
3️⃣ Importation des bibliothèques (5 minutes) :
Pour commencer, vous devez importer les bibliothèques nécessaires pour travailler avec des images en Python. Les bibliothèques couramment utilisées sont Pillow (anciennement PIL) et NumPy. Assurez-vous que ces bibliothèques sont installées sur votre ordinateur.
from PIL import Image
import numpy as np
4️⃣ Chargement de l'image (10 minutes):
Choisissez une image que vous souhaitez manipuler. Vous allez la charger dans votre programme Python.
image = Image.open("chemin_vers_l_image.jpg")
pixels = np.array(image)
5️⃣ Traitement des pixels (20 minutes) :
Maintenant, vous pouvez commencer à manipuler les pixels de l'image. Les pixels sont les petits éléments qui composent une image. Vous pouvez agir sur les trois composantes de couleur (rouge, vert, bleu) de chaque pixel pour obtenir des effets différents. Par exemple, pour inverser les couleurs de l'image, vous pouvez utiliser la formule suivante :
inverted_pixels = 255 - pixels
N'hésitez pas à essayer d'autres transformations créatives, comme l'ajustement de la luminosité, le changement des teintes de couleur, le flou, etc.
6️⃣ Affichage de l'image traitée (10 minutes) :
Une fois que vous avez effectué les transformations souhaitées, vous pouvez afficher l'image traitée pour voir le résultat.
new_image = Image.fromarray(inverted_pixels)
new_image.show()
7️⃣ Enregistrement de l'image traitée (5 minutes) :
Si vous êtes satisfait du résultat, vous pouvez enregistrer l'image traitée dans un fichier pour la conserver.
new_image.save("chemin_vers_l_image_traitee.jpg")
8️⃣ Conclusion (5 minutes) :
Félicitations ! Vous avez appris à manipuler une image numérique en utilisant Python. N'hésitez pas à continuer à explorer et à expérimenter d'autres transformations pour obtenir des effets visuels uniques. Amusez-vous bien et continuez à développer vos compétences en traitement d'image !
La manipulation d'images est un aspect essentiel de l'informatique, permettant de traiter, modifier et analyser des images numériques. En Python, la bibliothèque Pillow est largement utilisée pour effectuer ces opérations.
Pour commencer à manipuler des images, vous devez d'abord installer la bibliothèque Pillow. Utilisez la commande suivante :
pip install Pillow
Pour manipuler une image, commencez par la charger. Voici comment procéder :
from PIL import Image
image = Image.open("mon_image.jpg")
image.show()
La conversion d'une image couleur en niveaux de gris est une opération courante. Voici comment faire :
gray_image = image.convert("L")
gray_image.show()
Pillow permet d'appliquer des filtres aux images. Par exemple, pour appliquer un filtre de flou :
from PIL import ImageFilter
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.show()
Vous pouvez redimensionner une image pour l'adapter à vos besoins :
resized_image = image.resize((300, 300))
resized_image.show()
Après manipulation, il est essentiel de sauvegarder vos images :
resized_image.save("mon_image_redimensionnee.jpg")
La manipulation d'images avec Python et Pillow est un processus accessible et puissant. Grâce à ces outils, vous pouvez facilement charger, modifier et sauvegarder des images, ouvrant la voie à de nombreuses applications créatives et analytiques.
Chargez une image à partir de votre disque et affichez-la.
Convertissez une image couleur en niveaux de gris et sauvegardez-la.
Appliquez un filtre de flou à une image et affichez le résultat.
Redimensionnez une image à 300x300 pixels et sauvegardez-la.
Faites une rotation de 90 degrés d'une image et affichez le résultat.
Inversez les couleurs d'une image en manipulant ses pixels.
Ajoutez un effet de sépia à une image.
Augmentez la luminosité d'une image en manipulant ses pixels.
Appliquez un flou gaussien à une image en manipulant ses pixels.
Convertissez une image en noir et blanc en manipulant ses pixels.
La manipulation d'images en Python est largement facilitée par la bibliothèque Pillow, qui permet de traiter facilement les pixels d'une image. Ce cours va explorer diverses techniques pour modifier les images en utilisant des manipulations de pixels.
L'inversion des couleurs consiste à changer chaque pixel de l'image pour que sa valeur soit remplacée par sa couleur complémentaire. Par exemple, le rouge devient du cyan, le vert devient du magenta, et ainsi de suite.
from PIL import Image import numpy as np # Chargement de l'image image = Image.open("mon_image.jpg") # Conversion de l'image en tableau de pixels pixels = np.array(image) # Inversion des couleurs inverted_pixels = 255 - pixels # Création d'une nouvelle image à partir des pixels inversés new_image = Image.fromarray(inverted_pixels) new_image.show()
Dans ce code :
Image.open()
charge l'image depuis le disque.np.array()
convertit l'image en un tableau NumPy pour faciliter la manipulation.255 - pixels
inverse les couleurs en soustrayant chaque valeur de couleur de 255.Image.fromarray()
crée une nouvelle image à partir du tableau inversé.L'effet sépia donne une teinte brunâtre à l'image, imitant l'apparence des photos anciennes.
from PIL import Image import numpy as np # Chargement de l'image image = Image.open("mon_image.jpg") # Conversion de l'image en tableau de pixels pixels = np.array(image) # Matrice du filtre sépia sepia_filter = np.array([[0.393, 0.769, 0.189], [0.349, 0.686, 0.168], [0.272, 0.534, 0.131]]) # Application du filtre sépia sepia_pixels = pixels @ sepia_filter.T sepia_pixels = np.clip(sepia_pixels, 0, 255).astype(np.uint8) # Création d'une nouvelle image à partir des pixels sépia new_image = Image.fromarray(sepia_pixels) new_image.show()
Dans ce code :
sepia_filter
définit comment les couleurs rouge, verte et bleue doivent être combinées pour produire l'effet sépia.pixels @ sepia_filter.T
applique le filtre à chaque pixel.np.clip()
s'assure que les valeurs restent entre 0 et 255.Augmenter la luminosité d'une image consiste à ajouter une valeur constante à chaque pixel.
from PIL import Image import numpy as np # Chargement de l'image image = Image.open("mon_image.jpg") # Conversion de l'image en tableau de pixels pixels = np.array(image) # Augmentation de la luminosité bright_pixels = np.clip(pixels + 50, 0, 255) # Création d'une nouvelle image à partir des pixels lumineux new_image = Image.fromarray(bright_pixels) new_image.show()
Dans ce code :
np.clip()
garantit que les valeurs ne dépassent pas 255.Le flou gaussien est utilisé pour adoucir les détails d'une image, créant un effet de flou.
from PIL import Image, ImageFilter # Chargement de l'image image = Image.open("mon_image.jpg") # Application du flou gaussien blurred_image = image.filter(ImageFilter.GaussianBlur(radius=5)) blurred_image.show()
Dans ce code :
ImageFilter.GaussianBlur()
applique un flou gaussien avec un rayon spécifié.La conversion en noir et blanc consiste à transformer l'image en utilisant une formule pour déterminer la luminosité de chaque pixel.
from PIL import Image import numpy as np # Chargement de l'image image = Image.open("mon_image.jpg") # Conversion de l'image en tableau de pixels pixels = np.array(image) # Conversion en niveaux de gris gray_pixels = np.dot(pixels[..., :3], [0.2989, 0.5870, 0.1140]) # Seuil pour convertir en noir et blanc bw_pixels = np.where(gray_pixels > 128, 255, 0).astype(np.uint8) # Création d'une nouvelle image à partir des pixels en noir et blanc new_image = Image.fromarray(bw_pixels) new_image.show()
Dans ce code :
np.dot()
calcule la luminosité en utilisant une pondération pour les couleurs.np.where()
détermine si chaque pixel doit être noir ou blanc en fonction d'un seuil de 128.Ces exercices illustrent comment manipuler les pixels d'une image en Python, en utilisant des techniques variées pour créer des effets visuels intéressants. En maîtrisant ces concepts, vous pouvez commencer à développer des applications plus complexes en traitement d'images.
Explorez comment l'art et la philosophie s'entrelacent pour questionner notre perception de la réalité et de l'esthétique.
Read more.Plongez dans les débats philosophiques sur la liberté, ses implications éthiques et les défis contemporains qui l'entourent.
Read more.Découvrez les différentes approches philosophiques de la vérité et comment elles influencent notre compréhension du monde.
Read more.Abonnez-vous maintenant et recevez notre newsletter hebdomadaire avec des matériaux éducatifs, de nouveaux cours, des articles intéressants, des livres populaires et bien plus encore !