Použít Medián a Wienerův filtr na obrázky v C#

Úpravy obrázků se používají v různých aplikacích k manipulaci s obrázky pro další zpracování. Napsali jsme sérii blogů, např. oříznutí, rotující, rozmazání atd., které jsou užitečné pro implementaci funkcí pro úpravu obrázků ve vašich aplikacích. V tomto článku vám ukážeme, jak aplikovat střední a wienerovy filtry, které se běžně používají k odstranění šumu a vyhlazení obrázků. Pojďme se tedy podívat, jak programově v C# aplikovat medián a wiener filery na obrázek.

C# API pro použití obrazových filtrů Median a Wiener – ke stažení zdarma

Aspose.Imaging for .NET je úžasné API pro implementaci funkcí pro úpravu obrázků v aplikacích .NET. Toto API použijeme pro aplikaci mediánových a wienerových filtrů na obrázky. Rozhraní API si můžete buď stáhnout, nebo jej nainstalovat z NuGet.

PM> Install-Package Aspose.Imaging

Použít střední filtr na obrázek v C#

Mediánový filtr je nelineární technika digitálního filtrování, která se používá ke snížení šumu z obrázků. Následují kroky pro použití mediánového filtru na obrázek v C#.

Následující ukázka kódu ukazuje, jak použít střední filtr na obrázek v C#.

// Načtěte zašuměný obraz 
using (Image image = Image.Load("jack.jpg"))
{
    // Přeneste obrázek do RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // Vytvořte instanci třídy MedianFilterOptions a nastavte velikost
    MedianFilterOptions options = new MedianFilterOptions(4);
    
    // Použít filtr a uložit obrázek
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_median.jpg");
}

Níže je obrázek před a po použití mediánového filtru.

Použít střední filtr na obrázek C#

Použít Gauss Wienerův filtr na obrázek v C#

Další běžně používanou metodou pro minimalizaci aditivního šumu a rozmazání snímků je gauss wiener. Následují kroky, jak aplikovat gauss wienerův filtr na obrázek v C#.

Následující ukázka kódu ukazuje, jak použít gauss wienerův filtr na obrázek v C#.

// Načtěte zašuměný obraz 
using (Image image = Image.Load("jack.jpg"))
{
    // Přeneste obrázek do RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // Vytvořte instanci třídy GaussWienerFilterOptions a nastavte velikost poloměru a hodnotu vyhlazení
    GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
    options.Grayscale = true;

    // Použijte filtr MedianFilterOptions na objekt RasterImage a uložte výsledný obrázek
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_guass.jpg");
}

Níže je obrázek před a po aplikaci gauss wienerova filtru s možností odstínů šedi.

Použijte Gauss Weinerův filtr na odstínění šedi obrazu

Následuje obrázek před a po aplikaci gaussova wienerova filtru bez odstínů šedi.

Na obrázek použijte barevný filtr Gauss Weiner

Použít Motion Wiener Filter na obrázek v C#

Pohybový wienerův filtr se používá k odstranění rozmazání obrazu, které vzniká v důsledku pohybujících se objektů. Následují kroky k použití filtru motion wiener na obrázek v C#.

Následující ukázka kódu ukazuje, jak použít filtr motion wiener na obrázek v C#.

// Načtěte zašuměný obraz 
using (Image image = Image.Load("jack.jpg"))
{
    // Přeneste obrázek do RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // Vytvořte instanci třídy MotionWienerFilterOptions a nastavte délku, hladkou hodnotu a úhel
    MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
    options.Grayscale = true;

    // Použijte filtr MedianFilterOptions na objekt RasterImage a uložte výsledný obrázek
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_MotionWiener.jpg");
}
Použít Motion Weinerův filtr na obrázek v C#

C# Median a Wiener Image Filtering API – Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a na obrázky použít filtry medián a wiener bez omezení hodnocení.

Závěr

V tomto článku jste se naučili, jak aplikovat mediánové a wienerovy filtry na obrázky v C#. Dále jsme se zabývali tím, jak snížit šum pohybujících se objektů na obrázku. Tyto funkce můžete snadno použít ve své aplikaci C# k integraci možností úprav obrázků.

Přečtěte si více

Další informace o rozhraní API pro zpracování obrázků .NET můžete prozkoumat pomocí dokumentace. Také se s námi můžete podělit o své dotazy prostřednictvím našeho fóra.

Viz také