En varios casos, es posible que deba convertir las imágenes RGB a escala de grises o en blanco y negro, por ejemplo, en el procesamiento de imágenes, etc. De acuerdo con eso, en este artículo, aprenderá cómo convertir una imagen RGB a escala de grises usando Java. . Además, el artículo cubrirá explícitamente la escala de grises y la binarización de las imágenes.
- API de Java para convertir imágenes a escala de grises
- Convertir imágenes a escala de grises en Java
- Convierta imágenes a blanco y negro con binarización
API de Java para convertir imágenes a escala de grises
Para convertir imágenes RGB a escala de grises, usaremos Aspose.Imaging for Java. Es una API de procesamiento de imágenes de Java que le permite manipular formatos de imagen populares sin problemas. Puede descargar la API o instalarla usando las siguientes configuraciones de Maven.
<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 una imagen a escala de grises en Java
Los siguientes son los pasos para convertir una imagen RGB a escala de grises en Java.
- Primero, cargue la imagen usando la clase Image.
- Luego, convierta la imagen en un objeto RasterCachedImage.
- Almacene en caché la imagen usando el método RasterCachedImage.cacheData().
- Convierta la imagen a escala de grises utilizando el método RasterCachedImage.grayscale().
- Finalmente, guarde la imagen usando el método RasterCachedImage.save(String).
El siguiente ejemplo de código muestra cómo convertir una imagen a escala de grises usando Java.
// Cargue una imagen en una instancia de Imagen
try (Image image = Image.load("aspose-logo.jpg"))
{
// Transmitir la imagen a RasterCachedImage
RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
// Comprobar si la imagen está en caché
if (!rasterCachedImage.isCached()) {
// Caché de imagen si aún no está en caché
rasterCachedImage.cacheData();
}
// Transformar la imagen a su representación en escala de grises
rasterCachedImage.grayscale();
// Guarda la imagen resultante
rasterCachedImage.save("Grayscaling_out.jpg");
}
Imagen de entrada
La siguiente es una imagen de muestra utilizada en este artículo.
Convertido a escala de grises
La siguiente es la imagen después de la conversión a escala de grises.
Convertir imagen a blanco y negro con binarización
En la binarización, cada píxel de una imagen puede tener solo dos valores posibles; 0 o 1. Aquí, 0 denota la ausencia y 1 denota la presencia del color. Aspose.Imaging admite dos métodos de binarización, es decir, binarización con umbral fijo y binarización con umbral Otsu.
Binarización con umbral fijo en Java
Los siguientes son los pasos para realizar la binarización en una imagen utilizando un umbral fijo.
- Primero, cargue la imagen usando la clase Image.
- Luego, convierta la imagen en un objeto RasterCachedImage.
- Almacene en caché la imagen usando el método RasterCachedImage.cacheData().
- Convierta la imagen a blanco y negro usando el método RasterCachedImage.binarizeFixed().
- Finalmente, guarde la imagen usando el método RasterCachedImage.save(String).
El siguiente código Java aplica binarización a una imagen y la convierte a blanco y negro.
// Cargue una imagen en una instancia de Imagen
try (Image image = Image.load("aspose-logo.jpg"))
{
// Transmita la imagen a RasterCachedImage y verifique si la imagen está almacenada en caché
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// Caché de imagen si aún no está en caché
rasterCachedImage.CacheData();
}
// Binarice la imagen con un umbral fijo predefinido y guarde la imagen resultante
rasterCachedImage.binarizeFixed((byte) 100);
rasterCachedImage.save("BinarizationWithFixedThreshold_out.jpg");
}
Binarización con Otsu Threshold en Java
Los siguientes son los pasos para convertir una imagen a blanco y negro con el umbral Otsu.
- Primero, cargue la imagen usando la clase Image.
- Transmita la imagen a un objeto RasterCachedImage.
- Almacene en caché la imagen usando el método RasterCachedImage.cacheData().
- Convierta la imagen a blanco y negro usando el método RasterCachedImage.binarizeOtsu().
- Finalmente, guarde la imagen usando el método RasterCachedImage.save(String).
El siguiente ejemplo de código muestra cómo convertir una imagen a blanco y negro con el umbral de Otsu usando Java.
// Cargue una imagen en una instancia de Imagen
try (Image image = Image.load("aspose-logo.jpg"))
{
// Transmita la imagen a RasterCachedImage y verifique si la imagen está almacenada en caché
RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
if (!rasterCachedImage.isCached())
{
// Caché de imagen si aún no está en caché
rasterCachedImage.cacheData();
}
// Binarizar imagen con Otsu Thresholding
rasterCachedImage.binarizeOtsu();
// Guarda la imagen resultante
rasterCachedImage.save("BinarizationWithOtsuThreshold_out.jpg");
}
Obtenga una licencia de API gratuita
Puede obtener una licencia temporal gratuita para utilizar la API sin limitaciones de evaluación.
Conclusión
En este artículo, aprendió cómo convertir una imagen a escala de grises y en blanco y negro usando Java. Además, has visto cómo aplicar la binarización a las imágenes con umbral fijo u Otsu. Además, puede explorar más sobre la API de procesamiento de imágenes de Java utilizando documentación. Además, puede compartir sus consultas con nosotros a través de nuestro foro.