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# API pro převod obrázku do stupňů šedi
- Převést obrázek na stupně šedi v C#
- Převést obrázek na černobílý pomocí binarizace
- Získejte bezplatnou licenci API
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#.
- Nejprve načtěte obrázek pomocí třídy Image.
- Přeneste obrázek do objektu RasterCachedImage.
- Uložte obrázek do mezipaměti pomocí metody RasterCachedImage.CacheData().
- Převeďte obrázek na stupně šedi pomocí metody RasterCachedImage.Grayscale().
- Nakonec obrázek uložte pomocí metody RasterCachedImage.Save(String).
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.
Převedeno na stupně šedi
Následuje obrázek po převodu do stupňů š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.
- Nejprve načtěte obrázek pomocí třídy Image.
- Přeneste obrázek do objektu RasterCachedImage.
- Uložte obrázek do mezipaměti pomocí metody RasterCachedImage.CacheData().
- Převeďte obrázek na černobílý pomocí metody RasterCachedImage.BinarizeFixed().
- Nakonec obrázek uložte pomocí metody RasterCachedImage.Save(String).
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.
- Nejprve načtěte obrázek pomocí třídy Image.
- Přeneste obrázek do objektu RasterCachedImage.
- Uložte obrázek do mezipaměti pomocí metody RasterCachedImage.CacheData().
- Převeďte obrázek na černobílý pomocí metody RasterCachedImage.BinarizeOtsu().
- Nakonec obrázek uložte pomocí metody RasterCachedImage.Save(String).
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.