В различных случаях вам может понадобиться преобразовать цветные изображения в оттенки серого или черно-белые, например, при обработке изображений и т. д. Поэтому в этой статье вы узнаете, как преобразовать изображение в оттенки серого с помощью C#. Кроме того, в статье подробно рассматриваются оттенки серого и бинаризация изображений.
- C# API для преобразования изображений в оттенки серого
- Преобразование изображений в оттенки серого в C#
- Преобразование изображений в черно-белые с помощью бинаризации
- Получите бесплатную лицензию API
C# API для преобразования изображения в оттенки серого
Чтобы преобразовать цветные изображения RGB в оттенки серого, мы будем использовать Aspose.Imaging for .NET. Это мощный API-интерфейс обработки изображений, который позволяет беспрепятственно работать с популярными форматами изображений. Вы можете либо скачать API, либо установить его с помощью NuGet.
PM> Install-Package Aspose.Imaging
Преобразование изображения в оттенки серого в C#
Ниже приведены шаги по преобразованию цветного изображения в оттенки серого в C#.
- Сначала загрузите изображение с помощью класса Image.
- Вставьте изображение в объект RasterCachedImage.
- Кэшируйте изображение с помощью метода RasterCachedImage.CacheData().
- Преобразование изображения в оттенки серого с помощью метода RasterCachedImage.Grayscale().
- Наконец, сохраните изображение с помощью метода RasterCachedImage.Save(String).
В следующем примере кода показано, как преобразовать изображение в оттенки серого с помощью 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");
}
Входное изображение
Ниже приведен пример изображения, используемого в этой статье.
Преобразовано в оттенки серого
Ниже приведено изображение после преобразования в оттенки серого.
Преобразование изображения в черно-белое с помощью бинаризации
При бинаризации каждый пиксель изображения может иметь только два возможных значения; 0 или 1. Здесь 0 обозначает отсутствие, а 1 обозначает наличие цвета. Aspose.Imaging поддерживает два метода бинаризации: бинаризацию с фиксированным и бинаризацию с порогом Оцу.
Бинаризация с фиксированным порогом в C#
Ниже приведены шаги для выполнения бинаризации изображения с использованием фиксированного порога.
- Сначала загрузите изображение с помощью класса Image.
- Вставьте изображение в объект RasterCachedImage.
- Кэшируйте изображение с помощью метода RasterCachedImage.CacheData().
- Преобразование изображения в черно-белое с помощью метода RasterCachedImage.BinarizeFixed().
- Наконец, сохраните изображение с помощью метода RasterCachedImage.Save(String).
Следующий код 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.
- Сначала загрузите изображение с помощью класса Image.
- Вставьте изображение в объект RasterCachedImage.
- Кэшируйте изображение с помощью метода RasterCachedImage.CacheData().
- Преобразование изображения в черно-белое с помощью метода RasterCachedImage.BinarizeOtsu().
- Наконец, сохраните изображение с помощью метода RasterCachedImage.Save(String).
В следующем примере кода показано, как преобразовать изображение в черно-белое с порогом 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#, используя документацию. Кроме того, вы можете поделиться с нами своими вопросами через наш форум.