convertir imagen a escala de grises C#

En varios casos, es posible que deba convertir las imágenes en color a escala de grises o en blanco y negro, como en el procesamiento de imágenes, etc. Por lo tanto, en este artículo, aprenderá cómo convertir una imagen a escala de grises usando C#. Además, el artículo cubrirá la escala de grises y la binarización de las imágenes explícitamente.

API de C# para convertir imágenes a escala de grises

Para convertir imágenes en color RGB a escala de grises, usaremos Aspose.Imaging for .NET. Es una potente API de procesamiento de imágenes que le permite manipular formatos de imagen populares sin problemas. Puede descargar la API o instalarla mediante NuGet.

PM> Install-Package Aspose.Imaging

Convertir una imagen a escala de grises en C#

Los siguientes son los pasos para convertir una imagen en color a escala de grises en C#.

El siguiente ejemplo de código muestra cómo convertir una imagen a escala de grises usando C#.

// Cargue una imagen en una instancia de la clase Image
using (Image image = Image.Load("aspose.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();
    }

    // Transformar la imagen a su representación en escala de grises
    rasterCachedImage.Grayscale();
    
    // Guarda la imagen
    rasterCachedImage.Save("grayscaled.jpg");
}

Imagen de entrada

La siguiente es una imagen de muestra utilizada en este artículo.

imagen a escala de grises C#

Convertido a escala de grises

La siguiente es la imagen después de la conversión a escala de grises.

imagen en 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 C#

Los siguientes son los pasos para realizar la binarización en una imagen utilizando un umbral fijo.

El siguiente código C# aplica binarización a una imagen y la convierte a blanco y negro.

// Cargue una imagen en una instancia de la clase Image
using (Image image = Image.Load("aspose.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();
    }

    // Transformar imagen a su representación binaria
    rasterCachedImage.BinarizeFixed(100);
    
    // Guarda la imagen
    rasterCachedImage.Save("black and white.jpg");
}

Binarización con Otsu Threshold en C#

Los siguientes son los pasos para convertir una imagen a blanco y negro con el umbral Otsu.

El siguiente ejemplo de código muestra cómo convertir una imagen a blanco y negro con el umbral de Otsu usando C#.

// Cargue una imagen en una instancia de la clase Image
using (Image image = Image.Load("aspose.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();
    }

    // Transformar imagen a su representación binaria
    rasterCachedImage.BinarizeOtsu();
    
    // Guarda la imagen
    rasterCachedImage.Save("black and white.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 blanco y negro usando C#. 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 C# usando documentación. Además, puede compartir sus consultas con nosotros a través de nuestro foro.

Ver también