Ú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
- Použít střední filtr na obrázek v C#
- Aplikujte na obrázek Gauss Wienerův filtr
- Pohybová Wienerova filtrace obrazu
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#.
- Nejprve načtěte obrázek pomocí metody Image.Load().
- Poté přeneste obrázek do typu RasterImage.
- Vytvořte instanci třídy MedianFilterOptions a inicializujte ji s velikostí obdélníku.
- Použijte mediánový filtr pomocí metody RasterImage.Filter(Rectangle, MedianFilterOptions).
- Nakonec výsledný obrázek uložte pomocí metody RasterImage.Save().
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 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#.
- Nejprve načtěte obrázek pomocí metody Image.Load().
- Poté přeneste obrázek do typu RasterImage.
- Vytvořte instanci třídy GaussWienerFilterOptions a inicializujte ji pomocí velikosti poloměru a hladké hodnoty.
- (Volitelné) Chcete-li získat obrázek ve stupních šedi, nastavte vlastnost GaussWienerFilterOptions.Grayscale na hodnotu true.
- Použijte gauss wienerův filtr pomocí metody RasterImage.Filter(Rectangle, GaussWienerFilterOptions).
- Nakonec výsledný obrázek uložte pomocí metody RasterImage.Save().
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.
Následuje obrázek před a po aplikaci gaussova wienerova filtru bez odstínů šedi.
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#.
- Nejprve načtěte obrázek pomocí metody Image.Load().
- Poté přeneste obrázek do typu RasterImage.
- Vytvořte instanci třídy MotionWienerFilterOptions a inicializujte ji pomocí délky, hladké hodnoty a úhlu.
- Použijte motion wienerův filtr pomocí metody RasterImage.Filter(Rectangle, MotionWienerFilterOptions).
- Nakonec výsledný obrázek uložte pomocí metody RasterImage.Save().
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");
}
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.