CodeGym /Cours /Python SELF FR /Travail avec les couleurs et correction d’images

Travail avec les couleurs et correction d’images

Python SELF FR
Niveau 45 , Leçon 4
Disponible

1. Changer le mode couleur

Une image peut être représentée dans différents modes couleur, comme :

  • RGB : Mode couleur standard.
  • L : Nuances de gris.
  • CMYK : Utilisé pour l’impression.
  • RGBA : RGB avec canal alpha (pour la transparence).

Pour convertir une image dans un autre mode couleur, utilisez la méthode convert().

Conversion en nuances de gris

Pour rendre une image en noir et blanc, utilisez le mode couleur L :


# Conversion en nuances de gris
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")

Ce code convertit une image en noir et blanc et la sauvegarde dans un fichier gray_example.jpg. C’est utile si vous voulez créer un style monochrome ou préparer une image pour analyse, où seuls les niveaux de luminosité sont importants.

Conversion en mode CMYK

CMYK est souvent utilisé dans l’impression. Convertir une image dans ce mode peut être utile si elle est destinée à l’impression.


# Conversion en CMYK
cmyk_image = image.convert("CMYK")
cmyk_image.save("cmyk_example.jpg")

2. Appliquer des filtres à une image

Pillow propose plusieurs filtres intégrés que vous pouvez utiliser pour créer divers effets. Ces filtres se trouvent dans le module ImageFilter.

Appliquer des filtres de flou, contours et netteté


from PIL import ImageFilter

# Appliquer un filtre de flou
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.save("blurred_example.jpg")

# Appliquer un filtre de contours
contour_image = image.filter(ImageFilter.CONTOUR)
contour_image.save("contour_example.jpg")

# Appliquer un filtre de netteté
sharpened_image = image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_example.jpg")

Voici les trois filtres que nous appliquons :

  • BLUR : Floute l’image, utile pour créer des effets doux.
  • CONTOUR : Met en évidence les contours des objets de l’image.
  • SHARPEN : Augmente la netteté, rendant l’image plus claire.

Autres filtres

Quelques autres filtres utiles dans Pillow :

  • DETAIL : Met en avant les détails.
  • EDGE_ENHANCE : Renforce les bords.
  • SMOOTH : Adoucit l’image.

# Appliquer un filtre pour renforcer les bords
edge_image = image.filter(ImageFilter.EDGE_ENHANCE)
edge_image.save("edge_enhance_example.jpg")

3. Ajuster la luminosité, le contraste, la netteté et la saturation

Le package ImageEnhance de Pillow permet de modifier facilement la luminosité, le contraste, la netteté et la saturation des couleurs d’une image.

Ajuster la luminosité

Pour modifier la luminosité, utilisez la classe ImageEnhance.Brightness. Le coefficient de luminosité peut être tout nombre : 1.0 — luminosité d’origine, moins de 1.0 — assombrissement, plus de 1.0 — augmentation de la luminosité.


from PIL import ImageEnhance

# Modifier la luminosité
enhancer = ImageEnhance.Brightness(image)
brighter_image = enhancer.enhance(1.5)  # Augmentation de la luminosité de 50%
brighter_image.save("brighter_example.jpg")

Ajuster le contraste

Le contraste rend les zones claires plus claires et les zones sombres plus sombres. Pour modifier le contraste, utilisez ImageEnhance.Contrast.


# Modifier le contraste
enhancer = ImageEnhance.Contrast(image)
higher_contrast_image = enhancer.enhance(1.5)  # Augmentation du contraste de 50%
higher_contrast_image.save("higher_contrast_example.jpg")

Ajuster la netteté

La netteté détermine la clarté des bords des objets sur une image. Pour ajuster la netteté, on utilise ImageEnhance.Sharpness.


# Modifier la netteté
enhancer = ImageEnhance.Sharpness(image)
sharper_image = enhancer.enhance(2.0)  # Augmentation de la netteté par 2 fois
sharper_image.save("sharper_example.jpg")

La valeur 1.0 conserve la netteté d’origine, moins de 1.0 rend l’image plus floue, et plus de 1.0 la rend plus nette.

Ajuster la saturation des couleurs

La saturation des couleurs rend les couleurs plus ou moins vives. Pour modifier la saturation, utilisez ImageEnhance.Color.


# Modifier la saturation
enhancer = ImageEnhance.Color(image)
more_vibrant_image = enhancer.enhance(1.5)  # Augmentation de la saturation de 50%
more_vibrant_image.save("more_vibrant_example.jpg")

4. Comparaison des méthodes de correction d'image

Méthode Description Utilisation
convert("L") Conversion de l’image en mode noir et blanc Style monochrome, analyse des nuances
ImageFilter Appliquer des filtres pour le flou, la netteté, etc. Effets visuels, mise en évidence des objets
ImageEnhance.Brightness Régler la luminosité de l’image Éclaircissement ou assombrissement
ImageEnhance.Contrast Modifier le contraste Améliorer la visibilité des détails
ImageEnhance.Sharpness Modifier la netteté Accentuer les bords, augmenter la clarté
ImageEnhance.Color Ajuster la saturation des couleurs Créer des images lumineuses et vibrantes

5. Exemples

Exemple de traitement complet d'une image

Assemblons tout ce qui précède pour créer un code qui effectue plusieurs étapes de correction des couleurs, applique des filtres et ajuste la luminosité, le contraste et la saturation.


from PIL import Image, ImageEnhance, ImageFilter

# Charger l’image
image = Image.open("example.jpg")

# Conversion en noir et blanc
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")

# Appliquer un filtre de netteté
sharpened_image = gray_image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_gray_example.jpg")

# Augmenter la luminosité
enhancer = ImageEnhance.Brightness(sharpened_image)
brighter_image = enhancer.enhance(1.3)  # 30% plus lumineux
brighter_image.save("brighter_gray_example.jpg")

# Augmenter le contraste
enhancer = ImageEnhance.Contrast(brighter_image)
higher_contrast_image = enhancer.enhance(1.5)  # 50% de contraste en plus
higher_contrast_image.save("final_example.jpg")

Application pratique de la correction des couleurs

  • Traitement des photos : Régler la luminosité et le contraste peut améliorer la visibilité des détails, et les filtres aident à rendre l’image plus expressive.
  • Préparation d’images pour analyse : Conversion en noir et blanc, augmentation de la netteté et du contraste aident à rendre l’image plus claire et prête pour l’analyse.
  • Stylisation des images : Modifier la saturation et appliquer des filtres permet de créer des styles et effets uniques pour des projets de design.
1
Étude/Quiz
Travail avec des images avec Pillow, niveau 45, leçon 4
Indisponible
Travail avec des images avec Pillow
Travail avec des images avec Pillow
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION