2-programmation
mardi 20 juin 2023
par
par
Programmes en python
comprendre
Lire ce programme (les commentaires en particulier) pour comprendre son fonctionnement.
Conseil : le copier/coller dans un éditeur de programme python (Edupython ou Pyzo), il sera plus lisible.
"""IMPORTANT : l'image importée devra se trouver dans le même fichier que ce programme. L'image modifiée sera elle aussi enregistrée dans ce dossier"""
#importation obligatoire pour utiliser la fonction analysant le code RGB pixel par pixel d'une image
from PIL import Image
#nom de l'image à saisir A MODIFIER
imageSource=Image.open("paysage.jpg")
#prend en compte la largeur de l'image et sa hauteur
largeur,hauteur=imageSource.size
#définie une nouvelle image vierge de même dimension
imageTraitee=Image.new("RGB",(largeur,hauteur))
# y varie de 0 à (hauteur-1) et x varie de 0 à (largeur-1)
for y in range(hauteur):
for x in range(largeur):
p=imageSource.getpixel((x,y)) # p est la valeur RGB du pixel de l'image de départ
r=p[0]#première valeur de la liste p -> niveau de r
v=p[1]#deuxième valeur de la liste p -> niveau de v
b=p[2]#troisième valeur de la liste p -> niveau de b
##on applique la transformation : PARTIE A MODIFIER SELON LA TRANSFORMATION VOULUE
#le niveau de gris est la moyenne des valeurs de r, g, b ; attention, ce doit être un nombre entier
g=int((r+v+b)/3)
#on affecte directement les trois valeurs dans la liste (tuple) p ce qui correspond aux valeurs r, g, b de la nouvelle image
p=(g,g,g)
###
# on affecte les valeurs de de p dans la nouvelle image pour la créer
imageTraitee.putpixel((x,y),p)
#on nomme la nouvelle image pour l'enregistrer
imageTraitee.save("paysage_gris.jpg")
#on visulaise cette nouvelle image
imageTraitee.show()
observer
faire tourner ce programme et visualiser l’effet obtenu
remarque : le temps de compilation peut être long (de l’ordre de la dizaine de secondes) si votre image est ’lourde’.