convertir une image en niveaux de gris C#

Dans divers cas, vous devrez peut-être convertir les images couleur en niveaux de gris ou en noir et blanc, par exemple dans le traitement d’image, etc. Par conséquent, dans cet article, vous apprendrez à convertir une image en niveaux de gris à l’aide de C#. De plus, l’article couvrira explicitement la mise en niveaux de gris et la binarisation des images.

API C# pour convertir une image en niveaux de gris

Afin de convertir les images couleur RVB en niveaux de gris, nous utiliserons Aspose.Imaging for .NET. Il s’agit d’une puissante API de traitement d’image qui vous permet de manipuler les formats d’image populaires de manière transparente. Vous pouvez soit télécharger l’API ou l’installer à l’aide de NuGet.

PM> Install-Package Aspose.Imaging

Convertir une image en niveaux de gris en C#

Voici les étapes pour convertir une image couleur en niveaux de gris en C#.

L’exemple de code suivant montre comment convertir une image en niveaux de gris à l’aide de C#.

// Charger une image dans une instance de la classe Image
using (Image image = Image.Load("aspose.jpg"))
{
    // Castez l'image en RasterCachedImage et vérifiez si l'image est mise en cache
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Image du cache si elle n'est pas déjà mise en cache
        rasterCachedImage.CacheData();
    }

    // Transformer l'image en sa représentation en niveaux de gris
    rasterCachedImage.Grayscale();
    
    // Enregistrer l'image
    rasterCachedImage.Save("grayscaled.jpg");
}

Image d’entrée

Voici un exemple d’image utilisé dans cet article.

image en niveaux de gris C#

Converti en niveaux de gris

Voici l’image après conversion en niveaux de gris.

image en niveaux de gris

Convertir une image en noir et blanc avec binarisation

En binarisation, chaque pixel d’une image ne peut avoir que deux valeurs possibles ; 0 ou 1. Ici, 0 dénote l’absence et 1 dénote la présence de la couleur. Aspose.Imaging prend en charge deux méthodes de binarisation, à savoir la binarisation avec seuil fixe et la binarisation avec seuil Otsu.

Binarisation avec seuil fixe en C#

Voici les étapes pour effectuer la binarisation sur une image à l’aide d’un seuil fixe.

Le code C# suivant applique la binarisation à une image et la convertit en noir et blanc.

// Charger une image dans une instance de la classe Image
using (Image image = Image.Load("aspose.jpg"))
{
    // Castez l'image sur RasterCachedImage et vérifiez si l'image est mise en cache
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Image du cache si elle n'est pas déjà mise en cache
        rasterCachedImage.CacheData();
    }

    // Transformer l'image en sa représentation binaire
    rasterCachedImage.BinarizeFixed(100);
    
    // Enregistrer l'image
    rasterCachedImage.Save("black and white.jpg");
}

Binarisation avec Otsu Threshold en C#

Voici l’étape pour convertir une image en noir et blanc avec le seuil Otsu.

L’exemple de code suivant montre comment convertir une image en noir et blanc avec le seuil Otsu à l’aide de C#.

// Charger une image dans une instance de la classe Image
using (Image image = Image.Load("aspose.jpg"))
{
    // Castez l'image sur RasterCachedImage et vérifiez si l'image est mise en cache
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Image du cache si elle n'est pas déjà mise en cache
        rasterCachedImage.CacheData();
    }

    // Transformer l'image en sa représentation binaire
    rasterCachedImage.BinarizeOtsu();
    
    // Enregistrer l'image
    rasterCachedImage.Save("black and white.jpg");
}

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire gratuite afin d’utiliser l’API sans limitations d’évaluation.

Conclusion

Dans cet article, vous avez appris à convertir une image en niveaux de gris et en noir et blanc à l’aide de C#. De plus, vous avez vu comment appliquer la binarisation aux images à seuil fixe ou Otsu. De plus, vous pouvez en savoir plus sur l’API de traitement d’image C# à l’aide de documentation. Vous pouvez également partager vos questions avec nous via notre forum.

Voir également