Image

Exemples de programmes pour traiter une image:

Les programmes Python ci-dessous sont sur le drive

Parcourir une image et récupérer les informations de couleurs, utiliser tkinter

from tkinter import *     # Librairie graphique pour création fenêtres et widgets
from PIL import Image, ImageTk
image=Image.open(« imageSource.png »)  # ouverture image
#———————————
#traitement d’un point de l’image
#———————————
point=image.getpixel((0,14))        #traitement d’un point de l’image
print (point[0],point[1],point[2])
image.putpixel((0,14),(100,100,100))
image.save(« imageBut.png »)          #enregistre l’image modifiée comme imageBut
#——————————————-
#traitement de tous les points de l’image
#——————————————–
largeur,hauteur=image.size          #recupere les dimensions de l’image
for x in range(largeur):
for y in range(hauteur):
point=image.getpixel((x,y))
#couleurs complémentaires
image.putpixel((x,y),(255 -point[0],255 -point[1],255 -point[2]))
image.save(« imageButbis.png »)       #enregistre l’image modifiée comme imageButbis
image.show()                        #affiche l’image
#—————————————————————–
# utilisation Tkinter pour afficher une image et l’image modifiée
#—————————————————————–
fenetre=Tk()                            #creation d’une fenetre
fenetre.title(« essai de fenetre »)       # titre de la fenêtre

monImage=Image.open(« perroquet.jpg »)      #ouverture de l’image

photo = ImageTk.PhotoImage(monImage)    #utilisation de la librairie PIL
label1 = Label(image=photo)             #creation d’un label
label1.grid(row =0,column =0)           #positionnement du label1

largeur,hauteur=monImage.size          #recupere les dimensions de l’image
for x in range(largeur):               #couleurs complémentaires
for y in range(hauteur):
point=monImage.getpixel((x,y))
monImage.putpixel((x,y),(255 -point[0],255 -point[1],255 -point[2]))
monImage.save(« perroquetButbis.png »)   # enregistre l’image modifiée
photo1=ImageTk.PhotoImage(monImage)    #image transformée
label2=Label(image=photo1)              #creation d’un label2 pour l’image transformée
label2.grid(row =0,column =1)           #position
fenetre.mainloop()

Transformer une image et l’image associée (lien)

import tkinter  # Librairie graphique pour création fenêtres et widgets
from PIL import Image, ImageTk # Importation des modules utiles dans PIL
#—————————————————————
# Exemple de fonction transformant une image source en image but
#—————————————————————
def TransformeImage(ImageSource):
«  » »Affichage de la composante rouge » » »
# Type RVB, de même dimension que source
ImageBut=Image.new(‘RGB’ ,ImageSource.size)
largeur, hauteur = ImageSource.size
# ou bien: largeur = ImageSource.size[0]; hauteur=ImageSource.size[1]
#  récupère dans source couleurs du pixel(x,y) sous forme tuple(r,g,b)
for y in range(hauteur):                        # on parcourt l’image ligne par ligne
for x in range(largeur):                    # dans chaque ligne, colonne par colonne
rgb = ImageSource.getpixel((x, y))
# on définit la couleur du pixel(x,y) de l’image but
ImageBut.putpixel((x, y),(0, rgb[0], 0))
return ImageBut                                 # renvoie l’image obtenue
#——————————————————–
# Création d’une fenêtre tkinter et affichage image source
#——————————————————–
MaFenetre = tkinter.Tk() # la fonction Tk() crée une fenêtre
MaFenetre.title(« TP sur les images bitmap »)

# Chargement et affichage du fichier  de l’image source
monImage = Image.open(« reve.jpg »)              # si  fichier dans même dossier

# Création zone d’affichage (widget ‘Label’)  pour insérer un texte sur la fenêtre
Taille=monImage.size # ‘size’ renvoie les dimensions de l’image sous forme d’un tuple (x,y)
info= »Image source: Largeur= »+str(Taille[0])+ » hauteur= »+str(Taille[1])
ZoneTexte= tkinter.Label( MaFenetre,text=info)
ZoneTexte.grid(row =0,column =0)                    #insertion du label dans la fenêtre  en ligne 0, colonne 0
# Création zone d’affichage (Widget Label)  pour insérer l’image
monImageTk = ImageTk.PhotoImage(monImage)           #convertion de l’image au format tkinter
ZoneImage = tkinter.Label(MaFenetre,image=monImageTk)
ZoneImage.grid(row =1,column =0)

#—————————————————————
# Création et Affichage de l’image transformée
#—————————————————————
ImageBut=TransformeImage(monImage)
# Affichage
ImageButTk = ImageTk.PhotoImage(ImageBut)
ZoneImageBut = tkinter.Label( MaFenetre,image=ImageButTk)
ZoneImageBut.grid(row =1,column =1)

#—————————————————————
# Pour enregistrer l’image obtenue au format souhaité
#—————————————————————
ImageBut.save(« reve2.jpg »)

#—————————————————————
# Pour maintenir en vie la fenêtre
#—————————————————————
MaFenetre.mainloop()