преобразовать изображение в оттенки серого С#

В различных случаях вам может понадобиться преобразовать цветные изображения в оттенки серого или черно-белые, например, при обработке изображений и т. д. Поэтому в этой статье вы узнаете, как преобразовать изображение в оттенки серого с помощью C#. Кроме того, в статье подробно рассматриваются оттенки серого и бинаризация изображений.

C# API для преобразования изображения в оттенки серого

Чтобы преобразовать цветные изображения RGB в оттенки серого, мы будем использовать Aspose.Imaging for .NET. Это мощный API-интерфейс обработки изображений, который позволяет беспрепятственно работать с популярными форматами изображений. Вы можете либо скачать API, либо установить его с помощью NuGet.

PM> Install-Package Aspose.Imaging

Преобразование изображения в оттенки серого в C#

Ниже приведены шаги по преобразованию цветного изображения в оттенки серого в C#.

В следующем примере кода показано, как преобразовать изображение в оттенки серого с помощью C#.

// Загрузите изображение в экземпляр класса Image
using (Image image = Image.Load("aspose.jpg"))
{
    // Приведите изображение к RasterCachedImage и проверьте, кэшировано ли изображение.
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Кэшировать изображение, если оно еще не кэшировано
        rasterCachedImage.CacheData();
    }

    // Преобразование изображения в его представление в градациях серого
    rasterCachedImage.Grayscale();
    
    // Сохранить изображение
    rasterCachedImage.Save("grayscaled.jpg");
}

Входное изображение

Ниже приведен пример изображения, используемого в этой статье.

изображение в градациях серого C#

Преобразовано в оттенки серого

Ниже приведено изображение после преобразования в оттенки серого.

изображение в градациях серого

Преобразование изображения в черно-белое с помощью бинаризации

При бинаризации каждый пиксель изображения может иметь только два возможных значения; 0 или 1. Здесь 0 обозначает отсутствие, а 1 обозначает наличие цвета. Aspose.Imaging поддерживает два метода бинаризации: бинаризацию с фиксированным и бинаризацию с порогом Оцу.

Бинаризация с фиксированным порогом в C#

Ниже приведены шаги для выполнения бинаризации изображения с использованием фиксированного порога.

Следующий код C# применяет бинаризацию к изображению и преобразует его в черно-белое.

// Загрузите изображение в экземпляр класса Image
using (Image image = Image.Load("aspose.jpg"))
{
    // Приведите изображение к RasterCachedImage и проверьте, кэшировано ли изображение.
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Кэшировать изображение, если оно еще не кэшировано
        rasterCachedImage.CacheData();
    }

    // Преобразование изображения в его двоичное представление
    rasterCachedImage.BinarizeFixed(100);
    
    // Сохранить изображение
    rasterCachedImage.Save("black and white.jpg");
}

Бинаризация с порогом Оцу в C#

Ниже приведены шаги для преобразования изображения в черно-белое с порогом Otsu.

В следующем примере кода показано, как преобразовать изображение в черно-белое с порогом Otsu с помощью C#.

// Загрузите изображение в экземпляр класса Image
using (Image image = Image.Load("aspose.jpg"))
{
    // Приведите изображение к RasterCachedImage и проверьте, кэшировано ли изображение.
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Кэшировать изображение, если оно еще не кэшировано
        rasterCachedImage.CacheData();
    }

    // Преобразование изображения в его двоичное представление
    rasterCachedImage.BinarizeOtsu();
    
    // Сохранить изображение
    rasterCachedImage.Save("black and white.jpg");
}

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию, чтобы использовать API без ограничений на пробную версию.

Вывод

В этой статье вы узнали, как преобразовать изображение в оттенки серого и черно-белое с помощью C#. Кроме того, вы видели, как применять бинаризацию к изображениям с фиксированным порогом или порогом Оцу. Кроме того, вы можете узнать больше об API обработки изображений C#, используя документацию. Кроме того, вы можете поделиться с нами своими вопросами через наш форум.

Смотрите также