převést obrázek do C# ve stupních šedi

V různých případech může být nutné převést barevné obrázky na stupně šedi nebo černobílé, například při zpracování obrázků atd. V tomto článku se proto dozvíte, jak převést obrázek na stupně šedi v C#. Dále se tento článek bude výslovně zabývat škálováním šedi a binarizací obrázků.

C# Image to Grayscale Converter – Zdarma ke stažení

K převodu barevných obrázků RGB na stupně šedi použijeme Aspose.Imaging for .NET. Jedná se o výkonné rozhraní API pro zpracování obrázků, které umožňuje bezproblémovou manipulaci s oblíbenými formáty obrázků. API si můžete buď stáhnout, nebo jej nainstalovat pomocí NuGet.

PM> Install-Package Aspose.Imaging

Převést obrázek na stupně šedi v C#

Následují kroky pro převod barevného obrázku na stupně šedi v C#.

Následující ukázka kódu ukazuje, jak převést obrázek na stupně šedi pomocí C#.

// Načtěte obrázek v instanci třídy Image
using (Image image = Image.Load("aspose.jpg"))
{
    // Odešlete obrázek do RasterCachedImage a zkontrolujte, zda je obrázek uložen v mezipaměti
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Uložte obrázek do mezipaměti, pokud již není uložen do mezipaměti
        rasterCachedImage.CacheData();
    }

    // Transformujte obrázek na jeho reprezentaci ve stupních šedi
    rasterCachedImage.Grayscale();
    
    // Uložte obrázek
    rasterCachedImage.Save("grayscaled.jpg");
}

Vstupní obrázek

Následuje ukázkový obrázek použitý v tomto článku.

obrázek ve stupních šedi C#

Převedeno na stupně šedi

Následuje obrázek po převodu do stupňů šedi.

obrázek ve stupních šedi

Uložit obrázek jako stupně šedi v C# – černobílý s binarizací

Při binarizaci může mít každý pixel v obrázku pouze dvě možné hodnoty; 0 nebo 1. Zde 0 označuje nepřítomnost a 1 označuje přítomnost barvy. Aspose.Imaging podporuje dvě metody binarizace, tj. binarizaci s pevnou a binarizaci s prahem Otsu.

Binarizace s pevným prahem v C#

Následují kroky k provedení binarizace obrazu pomocí pevného prahu.

Následující kód C# aplikuje binarizaci na obrázek a převede jej na černobílý.

// Načtěte obrázek v instanci třídy Image
using (Image image = Image.Load("aspose.jpg"))
{
    // Odešlete obrázek do RasterCachedImage a zkontrolujte, zda je obrázek uložen v mezipaměti
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Uložte obrázek do mezipaměti, pokud již není uložen do mezipaměti
        rasterCachedImage.CacheData();
    }

    // Transformujte obrázek na jeho binární reprezentaci
    rasterCachedImage.BinarizeFixed(100);
    
    // Uložte obrázek
    rasterCachedImage.Save("black and white.jpg");
}

Binarizace s Otsu Threshold

Následují kroky pro převod obrázku na černobílý s prahem Otsu.

Následující ukázka kódu ukazuje, jak převést obrázek na černobílý s prahem Otsu pomocí C#.

// Načtěte obrázek v instanci třídy Image
using (Image image = Image.Load("aspose.jpg"))
{
    // Odešlete obrázek do RasterCachedImage a zkontrolujte, zda je obrázek uložen v mezipaměti
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Uložte obrázek do mezipaměti, pokud již není uložen do mezipaměti
        rasterCachedImage.CacheData();
    }

    // Transformujte obrázek na jeho binární reprezentaci
    rasterCachedImage.BinarizeOtsu();
    
    // Uložte obrázek
    rasterCachedImage.Save("black and white.jpg");
}

C# Převést obrázek na stupně šedi s bezplatnou licencí

Můžete získat bezplatnou dočasnou licenci a převádět obrázky do stupňů šedi bez omezení hodnocení.

Závěr

V tomto článku jste se naučili, jak převést obrázek na stupně šedi a černobílý pomocí C#. Navíc jste viděli, jak aplikovat binarizaci na obrázky s pevnými nebo Otsu prahy. Kromě toho můžete prozkoumat více o rozhraní API pro zpracování obrázků C# pomocí dokumentace. Své dotazy s námi můžete sdílet také prostřednictvím našeho fóra.

Viz také