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 des images en niveaux de gris
- Convertir des images en niveaux de gris en C#
- Convertir des images en noir et blanc avec la binarisation
- Obtenez une licence API gratuite
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#.
- Tout d’abord, chargez l’image à l’aide de la classe Image.
- Convertissez l’image en un objet RasterCachedImage.
- Mettez l’image en cache à l’aide de la méthode RasterCachedImage.CacheData().
- Convertissez l’image en niveaux de gris à l’aide de la méthode RasterCachedImage.Grayscale().
- Enfin, enregistrez l’image à l’aide de la méthode RasterCachedImage.Save(String).
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.
Converti en niveaux de gris
Voici l’image après conversion 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.
- Tout d’abord, chargez l’image à l’aide de la classe Image.
- Convertissez l’image en un objet RasterCachedImage.
- Mettez l’image en cache à l’aide de la méthode RasterCachedImage.CacheData().
- Convertissez l’image en noir et blanc à l’aide de la méthode RasterCachedImage.BinarizeFixed().
- Enfin, enregistrez l’image à l’aide de la méthode RasterCachedImage.Save(String).
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.
- Tout d’abord, chargez l’image à l’aide de la classe Image.
- Convertissez l’image en un objet RasterCachedImage.
- Mettez l’image en cache à l’aide de la méthode RasterCachedImage.CacheData().
- Convertissez l’image en noir et blanc à l’aide de la méthode RasterCachedImage.BinarizeOtsu().
- Enfin, enregistrez l’image à l’aide de la méthode RasterCachedImage.Save(String).
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.