Première partie : photo montage par la technique du fond vert

FondamentalPrésentation de l'activité :

Pour remplacer un fond uniforme vert d'une image par un autre décor, nous allons reprendre la méthode de l’activité précédente. Deux images seront définit. la première avec un fond vert sera ausculté pixel par pixel afin de retrouver les pixel vert. Chaque pixel vert sera donc remplacer par un pixel correspondant appartenant à la deuxième image. Nous allons alors crée un troisième image en assemblant les pixels que nous souhaitons conserver pour obtenir le photo montage.

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
        R=int(p1[0]) # Défintion d'une variable R prenant la valeur de la composante Rouge du pixel p1
22
        G=int(p1[1]) # Défintion d'une variable G prenant la valeur de la composante Verte du pixel p1
23
        B=int(p1[2]) # Défintion d'une variable V prenant la valeur de la composante Bleu du pixel p1
24
25
        if R<0.68*G and B<0.68*G: # Tester la couleur verte du pixel P1
26
            P=p2 # P1 est vert: définir un pixel P ayant pour valeur p2.
27
        else:
28
            P=p1 # P1 n'est pas vert: définir un pixel P ayant pour valeur p1.
29
        nouvelle_image.putpixel((x,y),P)
30
31
nouvelle_image.save("test10.jpg")
32
33
affichage=Image.open("test10.jpg")
34
35
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 .