將圖像轉換為灰度 C#

在各種情況下,您可能需要將彩色圖像轉換為灰度或黑白圖像,例如圖像處理等。因此,在本文中,您將學習如何在 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#

轉換為灰度

下面是轉換為灰度後的圖像。

灰度圖像

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 閾值的圖像應用二值化。此外,您可以使用 文檔 探索有關 C# 圖像處理 API 的更多信息。此外,您可以通過我們的 論壇 與我們分享您的疑問。

也可以看看