Použití mediánových a Wienerových filtrů na obrázky v C#

Úprava obrázků hraje klíčovou roli v různých aplikacích, umožňuje zlepšení a manipulaci s obrázky pro další zpracování. V našich předchozích blozích jsme diskutovali o tématech, jako je ořezávání obrázků, otáčení obrázků a rozmazání obrázků. Dnes se ponoříme do aplikace mediánových a Wienerových filtrů—dvou základních technik pro odšumění a vyhlazení obrázků. Pojďme prozkoumat jak programově aplikovat mediánové a Wienerovy filtry na obrázek v C#.

C# API pro použití mediánových a Wienerových filtrů na obrázky - Bezplatné stažení

Aspose.Imaging pro .NET je mocné API navržené k implementaci funkcí úpravy obrázků v .NET aplikacích. Využijeme toto API k aplikaci mediánových a Wienerových filtrů na obrázky. Můžete si snadno stáhnout API nebo jej nainstalovat přímo z NuGet pomocí následujícího příkazu:

PM> Install-Package Aspose.Imaging

Použití mediánového filtru na obrázek v C#

Mediánový filtr je nelineární digitální filtrační technika, která účinně snižuje šum v obrázcích. Zde je návod, jak můžete aplikovat mediánový filtr na obrázek v C#:

  1. Načtěte obrázek pomocí metody Image.Load().
  2. Převeďte obrázek na typ RasterImage.
  3. Vytvořte instanci třídy MedianFilterOptions a inicializujte ji požadovanou velikostí obdélníku.
  4. Aplikujte mediánový filtr pomocí metody RasterImage.Filter(Rectangle, MedianFilterOptions).
  5. Uložte výsledný obrázek pomocí metody RasterImage.Save().

Zde je ukázka kódu, která demonstruje, jak aplikovat mediánový filtr na obrázek v C#:

Níže je obrázek před a po aplikaci mediánového filtru:

Použití mediánového filtru na obrázek C#

Použití Gaussova Wienerova filtru na obrázek v C#

Gaussův Wienerův filtr je další účinná metoda pro minimalizaci aditivního šumu a rozmazání v obrázcích. Postupujte podle těchto kroků pro aplikaci Gaussova Wienerova filtru v C#:

  1. Načtěte obrázek pomocí metody Image.Load().
  2. Převeďte obrázek na typ RasterImage.
  3. Vytvořte instanci třídy GaussWienerFilterOptions a inicializujte ji požadovanou velikostí poloměru a hladkým hodnotou.
  4. (Volitelné) Pro obrázek v odstínech šedi nastavte vlastnost GaussWienerFilterOptions.Grayscale na true.
  5. Aplikujte Gaussův Wienerův filtr pomocí metody RasterImage.Filter(Rectangle, GaussWienerFilterOptions).
  6. Uložte výsledný obrázek pomocí metody RasterImage.Save().

Zde je ukázka kódu pro aplikaci Gaussova Wienerova filtru na obrázek v C#:

Níže můžete vidět obrázek před a po aplikaci Gaussova Wienerova filtru s volbou odstínů šedi:

Použití Gaussova Wienerova filtru na obrázek s odstíny šedi

A zde je obrázek před a po aplikaci Gaussova Wienerova filtru bez odstínů šedi:

Použití Gaussova Wienerova barevného filtru na obrázek

Použití pohybového Wienerova filtru na obrázek v C#

Pohybový Wienerův filtr je speciálně navržen k odstranění rozmazání způsobeného pohybujícími se objekty. Zde je návod, jak aplikovat pohybový Wienerův filtr v C#:

  1. Načtěte obrázek pomocí metody Image.Load().
  2. Převeďte obrázek na typ RasterImage.
  3. Vytvořte instanci třídy MotionWienerFilterOptions a inicializujte ji délkou, hladkým hodnotou a úhlem.
  4. Aplikujte pohybový Wienerův filtr pomocí metody RasterImage.Filter(Rectangle, MotionWienerFilterOptions).
  5. Uložte výsledný obrázek pomocí metody RasterImage.Save().

Zde je ukázka kódu, která ukazuje, jak aplikovat pohybový Wienerův filtr na obrázek v C#:

Použití pohybového Wienerova filtru na obrázek v C#

C# Mediánové a Wienerové filtrování obrázků API - Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci pro aplikaci mediánových a Wienerových filtrů na obrázky bez jakýchkoli hodnotících omezení.

Závěr

V tomto článku jsme prozkoumali, jak aplikovat mediánové a Wienerovy filtry na obrázky v C#. Také jsme diskutovali o metodách, jak snížit šum z pohybujících se objektů v obrázcích. Tyto funkce můžete bezproblémově integrovat do svých C# aplikací, abyste zlepšili své schopnosti úpravy obrázků.

Přečtěte si více

Chcete-li se dozvědět více o .NET API pro zpracování obrázků, podívejte se na dokumentaci. Pokud máte jakékoli dotazy, neváhejte se obrátit na naše forum.

Viz také