CodeGym /Cours /Python SELF FR /Fusion et combinaison d'images

Fusion et combinaison d'images

Python SELF FR
Niveau 45 , Leçon 3
Disponible

1. Préparation

Chargement des images pour combinaison

Avant de travailler avec plusieurs images, il est nécessaire de les charger. Pillow permet de travailler avec la plupart des formats d'images populaires, tels que JPEG, PNG, BMP et GIF.

Python

from PIL import Image

# Chargement des images
background = Image.open("background.jpg")
foreground = Image.open("foreground.png")

Ici, on charge deux images : une image de fond et une image à superposer. N'oubliez pas que pour certaines méthodes, les deux images doivent avoir les mêmes dimensions.

2. Superposition d'images

Méthode paste()

La méthode paste() permet de coller une image sur une autre à des coordonnées spécifiques. Cette méthode est utile si vous devez superposer une image sur une autre ou créer un effet de collage.

Python

# Redimensionnement du premier plan pour correspondre à la taille de l'arrière-plan
foreground = foreground.resize(background.size)

# Superposition de l'image sur l'arrière-plan
background.paste(foreground, (50, 50))  # On insère foreground aux coordonnées (50, 50)

# Sauvegarde du résultat
background.save("pasted_image.jpg")

Ici, l'image foreground est collée sur background avec un point d'insertion initial de (50, 50). Si le premier plan dépasse les bordures de l'arrière-plan, il sera partiellement coupé.

Utilisation d'un masque avec paste()

La méthode paste() supporte également les masques, permettant de superposer une image partiellement tout en conservant ses zones transparentes. Le masque doit être au format L (niveaux de gris) ou RGBA.

Python

# Création d'un masque
mask = Image.open("mask.png").convert("L")  # On convertit le masque en niveaux de gris

# Collage de l'image avec un masque
background.paste(foreground, (50, 50), mask=mask)
background.save("pasted_with_mask.jpg")

Le masque mask.png détermine quelles parties de l'image foreground seront visibles, et permet de superposer proprement une image sur une autre.

3. Fusion d'images

Méthode blend()

La méthode blend() permet de fusionner deux images avec une transparence spécifique. Cette méthode crée un nouvel objet image, représentant un mélange des deux images d'origine. Pour utiliser blend(), les deux images doivent avoir la même taille.

Fusion simple d'images

Python

# Redimensionnement des images à la même taille
background = background.resize((500, 500))
foreground = foreground.resize((500, 500))

# Fusion des images avec un coefficient de transparence
blended_image = Image.blend(background, foreground, alpha=0.5)

# Sauvegarde du résultat
blended_image.save("blended_image.jpg")

Le paramètre alpha définit le degré de transparence de l'image foreground. Si alpha = 0.5, les images sont mélangées à parts égales. Une valeur de alpha = 0.0 rend l'image foreground complètement transparente (seul l'arrière-plan est visible), tandis que alpha = 1.0 rend l'image de fond complètement transparente (seul le premier plan est visible).

4. Composition d'images avec un masque

Méthode composite()

La méthode composite() permet de combiner deux images en fonction d'un masque, déterminant quelles parties de chaque image seront visibles. Cette méthode est très pratique pour créer des compositions complexes et pour superposer avec précision une image sur une autre.

Exemple : Utilisation de composite() pour combiner des images

Python

# Assurez-vous que les deux images et le masque ont la même taille
background = background.resize((500, 500))
foreground = foreground.resize((500, 500))
mask = mask.resize((500, 500))

# Création d'une composition avec un masque
composited_image = Image.composite(foreground, background, mask)

# Sauvegarde de l'image
composited_image.save("composited_image.jpg")

Le masque détermine quelles parties de foreground et background seront visibles dans l'image finale. Les zones blanches du masque rendent visible foreground, tandis que les zones noires rendent visible background.

5. Exemples

Exemple d'utilisation combinée des méthodes paste(), blend() et composite()

Voyons maintenant comment combiner ces méthodes pour créer une composition plus complexe. Supposons que nous avons un fond, une image avec transparence et un masque.

Python

from PIL import Image

# Chargement des images
background = Image.open("background.jpg").resize((500, 500))
foreground = Image.open("foreground.png").resize((500, 500))
mask = Image.open("mask.png").convert("L").resize((500, 500))

# 1. Mélange du fond et du premier plan avec transparence
blended_image = Image.blend(background, foreground, alpha=0.3)

# 2. Superposition avec masque sur l'image finale
final_composite = Image.composite(foreground, blended_image, mask)

# Sauvegarde du résultat final
final_composite.save("final_composition.jpg")

Cet exemple démontre comment appliquer successivement blend() et composite() pour créer des compositions multi-couches.

Applications pratiques des méthodes de combinaison d'images

  1. Création de collages : La méthode paste() permet d'ajouter plusieurs images sur une même toile pour créer des collages et mosaïques.
  2. Effets de superposition et de transparence : La méthode blend() permet de créer des transitions douces entre les images, idéale pour la retouche photo et la création d'effets.
  3. Compositions avec masques : La méthode composite() permet de contrôler précisément quelles parties de quelle image seront visibles et de créer des compositions complexes à l'aide de masques.

Comparaison des méthodes

Méthode Description Utilisation
paste() Superposition d'une image sur une autre Collages, placement d'une image sur une autre
blend() Fusion de deux images avec une transparence spécifiée Transitions douces et effets de superposition
composite() Combinaison de deux images en fonction d'un masque Compositions complexes et superpositions précises
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION