Première partie : La superposition d'images
Fondamental : Présentation de l'activité :
Superposer deux images revient à réaliser une image « moyenne ». Cette construction est courante ; ainsi, l'image numérique que retient votre téléphone portable lorsque vous prenez une photo est une image qui est souvent obtenue à partir d'un savant calcul réalisé à partir de plusieurs prises de vue et non d'une seule. Ce processus permet à partir de plusieurs images d'atténuer certains défauts qui seraient plus visibles si l'on prenait une seule image.
Téléchargez le dossier suivant sur votre session :
[zip], puis décompressez[1] ce fichier dans votre dossier personnel et renommez le ainsi :
.
Dans ce dossier vous trouverez trois fichiers :
deux fichiers image : image1.jpg et image2.jpg
un fichier python : module5.py
Vous ne devez jamais séparer ces deux fichiers.
Dans ce même dossier, vous créez un fichier Word , ou vous répondrez aux différentes questions posées durant l'activité.
Méthode : Ecriture du programme sous Python
Méthode : Définition des images sources
Nous allons maintenant définir les deux images im1 et im2 en fournissant leurs noms complets[2] au logiciel :

im1=Image.open("image1.jpg")
im2=Image.open("image2.jpg")
Un petit essai, nous permet de savoir si tout est OK : nous demandons au logiciel de nous fournir les dimensions de chaque image et de les afficher à l'écran :
print("LxH:", im1.size)
im1.show()
print("LxH:", im2.size)
im2.show()
Méthode : Création de l'image vide
Nous allons maintenant définir les dimensions des deux images im1 et im2 (c'est à dire le nombre de colonnes de pixel et le nombre de lignes de pixel) afin de créer une image vide. On les note c1 x l1 pour l'image 1 et c2xl2 pour l'image 2. Ensuite on définit les dimensions de l'image vide en prenant le minimum c des deux nombres c1 et c2 et le minimum l des deux nombres l1 et l2. On les note C x L pour l'image vide.
(c1,l1)=im1.size
(c2,l2)=im2.size
(C,L)= (min(c1,c2),min(l1,l2))
Une vérification qui ne coûte rien : nous demandons au logiciel d' afficher à l'écran les dimensions de la nouvelle image.
print("dimensions de la nouvelle image LxH:",C,L)
Maintenant, on construit cette nouvelle image vide.
nouvelle_image=Image.new('RGB',(C,L))
Rappel : A propos des pixels :

Pour la suite, il faut calculer chaque pixel de la nouvelle image à partir des pixels des images sources. Autrement dit, nous allons prendre les valeurs Rouges1, Vert1, et Bleu1 de chaque pixel de l'image 1, les valeurs Rouges2, Vert2, et Bleu2 de chaque pixel de l'image 2, puis calculer la valeurs moyenne des Rouges1 et Rouges2, Vert1 et Vert2, Bleu1 et Bleu2, et prendre ces valeurs pour définir les pixels de la nouvelle image qui seront intégrés dans l'image vide.
Méthode : Calcul des pixels
Pour ce calcul, on parcourt les pixels p1 et p2 des deux images de départ colonne par colonne (de la colonne n°0 à la colonne n°(c-1)) de la ligne n°0 à la ligne n°(l-1). Chaque pixels sera repérées par des coordonnées (x,y) et seront définit sous la forme p1(R1,V1,B1) et p2(R2,V2,B2).
nous allons utiliser deux boucles range :
une boucle range pour définir les coordonnées X correspondantes aux colonnes
une boucle range pour définir les coordonnées Y correspondantes aux lignes
Quand les pixels p1 et p2 sont définit, nous calculons la moyenne de chaque valeurs RVB. On définit enfin les pixels de la nouvelle image sous la forme suivante : P((R1+R2)/2,(V1+V2)/2,(B1+B2)/2).
Enfin on intègre les pixels calculés dans la nouvelle image.
for x in range(C):
for y in range(V):
p1=im1.getpixel((x,y))
p2=im2.getpixel((x,y))
P=(int((p1[0] + p2[0])/2),int((p1[1] + p2[1])/2),int((p1[2] + p2[2])/2))
nouvelle_image.putpixel((x,y),P)
On enregistre la nouvelle image obtenue sur l'ordinateur sous le nom: new_Resultat.jpg. Cette instruction doit être inscrite en dehors des boucles range .
nouvelle_image.save("new_Resultat.jpg")
Méthode : Affichage de la nouvelle image
Il ne reste plus qu'à afficher cette nouvelle image.
affichage=Image.open("new_Resultat.jpg")
affichage.show()

Sauvegarder votre programme et tester le sur des images de votre choix.
Copier-coller le programme dans votre document Word
,et insérer l'image obtenue.