Dans divers cas, vous devrez peut-être convertir les images RVB en niveaux de gris ou en noir et blanc, par exemple, dans le traitement d’image, etc. Conformément à cela, dans cet article, vous apprendrez comment convertir une image RVB en niveaux de gris à l’aide de Java . De plus, l’article couvrira explicitement la mise en niveaux de gris et la binarisation des images.
- API Java pour convertir des images en niveaux de gris
- Convertir des images en niveaux de gris en Java
- Convertir des images en noir et blanc avec la binarisation
API Java pour convertir une image en niveaux de gris
Afin de convertir les images RVB en niveaux de gris, nous utiliserons Aspose.Imaging for Java. Il s’agit d’une API de traitement d’image Java 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 des configurations Maven suivantes.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging-java</artifactId>
<version>21.7</version>
<classifier>jdk16</classifier>
</dependency>
Convertir une image en niveaux de gris en Java
Voici les étapes pour convertir une image RVB en niveaux de gris en Java.
- Tout d’abord, chargez l’image à l’aide de la classe Image.
- Ensuite, 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 Java.
// Charger une image dans une instance de Image
try (Image image = Image.load("aspose-logo.jpg"))
{
// Convertir l'image en RasterCachedImage
RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
// Vérifier si l'image est en cache
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 résultante
rasterCachedImage.save("Grayscaling_out.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 Java
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.
- Ensuite, 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 en utilisant la méthode RasterCachedImage.binarizeFixed().
- Enfin, enregistrez l’image à l’aide de la méthode RasterCachedImage.save(String).
Le code Java suivant applique la binarisation à une image et la convertit en noir et blanc.
// Charger une image dans une instance de Image
try (Image image = Image.load("aspose-logo.jpg"))
{
// Convertissez 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();
}
// Binariser l'image avec un seuil fixe prédéfini et enregistrer l'image résultante
rasterCachedImage.binarizeFixed((byte) 100);
rasterCachedImage.save("BinarizationWithFixedThreshold_out.jpg");
}
Binarisation avec Otsu Threshold en Java
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 en utilisant 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 Java.
// Charger une image dans une instance de Image
try (Image image = Image.load("aspose-logo.jpg"))
{
// Convertissez 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();
}
// Binariser l'image avec Otsu Thresholding
rasterCachedImage.binarizeOtsu();
// Enregistrer l'image résultante
rasterCachedImage.save("BinarizationWithOtsuThreshold_out.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 Java. 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 Java à l’aide de documentation. Vous pouvez également partager vos questions avec nous via notre forum.