将图像转换为灰度 C#

在各种情况下,您可能需要将彩色图像转换为灰度或黑白,例如在图像处理等方面。因此,在本文中,您将学习如何在 C# 中将图像转换为灰度。此外,本文将明确介绍 images 的灰度化和二值化。

将图像转换为灰度的 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#

转换为灰度

下面是转换为灰度后的图像。

灰度图像

C# 中的灰度图像 - 带有二值化的黑白

在二值化中,图像中的每个像素只能有两个可能的值; 0 或 1。这里,0 表示不存在,1 表示存在颜色。 Aspose.Imaging 支持两种二值化方法,即固定二值化和 Otsu 阈值二值化。

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");
}

使用 Otsu 阈值进行 C# 二值化

以下是使用 Otsu 阈值将图像转换为黑白的步骤。

以下代码示例展示了如何使用 C# 将图像转换为具有 Otsu 阈值的黑白图像。

// 在 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");
}

C# 图像到灰度转换器 - 获取免费许可证

您可以 获得免费的临时许可证 以便在没有评估限制的情况下使用 API。

结论

在本文中,您学习了如何使用 C# 将图像转换为灰度和黑白。此外,您还了解了如何对具有固定阈值或 Otsu 阈值的图像应用二值化。此外,您可以使用 documentation 探索有关 C# 图像处理 API 的更多信息。此外,您可以通过我们的 论坛 与我们分享您的疑问。

也可以看看