Première partie : la superposition d'images

FondamentalPré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 : bateau.jpg et plage.jpg

  • un fichier python : module6.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éthodeJe comprends un algoritme

La technique de superposition travailler sur l'activité précédente est tout à fait comparable à la technique du fond vert utiliser par exemple à la télévision pour la présentation de la météo.

MéthodeEcriture du programme sous Python

Vous pouvez à présent ouvrir le fichier module6.py , et saisir étape par étape le programme.

1
from PIL import Image
2
3
im1=Image.open("bateau.jpg")
4
im2=Image.open("plage.jpg")
5
6
(c1,l1)=im1.size
7
(c2,l2)=im2.size
8
im1=im1.resize((int(c1/c1*c2),int(l1/c1*c2)))
9
(c1,l1)=im1.size
10
11
(C,L)= ((c1),min(l1,l2))
12
13
nouvelle_image=Image.new('RGB',(C,L))
14
15
for x in range(C): # Définir une variable x dans une boucle tel que x dans la plage de (0 à C-1) définisse la colonne concernée.
16
    for y in range(L): # Définir une variable y dans une boucle tel que y dans la plage de (0 à L-1) définisse la ligne concernée.
17
18
        p1=im1.getpixel((x,y))
19
        p2=im2.getpixel((x,y))
20
21
        if p1[0]<=10 and p1[1]>=200 and p1[2]<=10: # Tester la couleur verte du pixel P1
22
            P=p2 # P1 est vert: définir un pixel P ayant pour valeur p2.
23
        else:
24
            P=p1 # P1 n'est pas vert: définir un pixel P ayant pour valeur p1.
25
        nouvelle_image.putpixel((x,y),P)
26
27
nouvelle_image.save("test10.jpg")
28
29
affichage=Image.open("test10.jpg")
30
31
affichage.show()

Ajoutez, aux emplacements judicieux, les lignes de commentaires données dans le désordre (il faut insérer le commentaire sans oublier le symbole #, sinon la ligne sera considéré comme une ligne de code).

1
# Ajouter le pixel P dans la nouvelle image au coordonnées (x,y).
2
# Définir les nouvelles dimensions de l'image 1.
3
# Afficher la nouvelle image.
4
# Charger la nouvelle image.
5
# Créer l'image vide.
6
# Définir les dimensions de l'image vide C x L de sorte que C=c1 et L= (minimum entre l1 et l2).
7
# Définir les dimensions des deux images im2.
8
# Définir le pixel p2 de l'image 2 de coordonnée (x,y)
9
# Définir les dimensions des deux images im1
10
# Sauvegarder la nouvelle image.
11
# Définir le pixel p1 de l'image 1 de coordonnée (x,y)
12
# Importer le module image de la bibliothèque PIL du logiciel.
13
# Définir les deux images im2.
14
# Définir les deux images im1.
15
# Redimensionner l'image 1 de sorte que c1=c2 et l1 soit calculée en gardant ses proportions de l'image source.

Copier-coller le programme avec les commentaires ajoutés dans votre document Word .

Exécuter le programme et présentez le résultat dans votre document Word .