Použití mediánového a Wienerova filtru
Použití mediánového a Wienerova filtru
Mediánový filtr je nelineární digitální filtrační technika, často používaná k odstranění šumu. Takové snížení šumu je typickým předběžným krokem ke zlepšení výsledků pozdějšího zpracování. Wienerův filtr je optimálním stacionárním lineárním filtrem MSE (střední kvadratická chyba) pro obrázky znehodnocené aditivním šumem a rozmazáním. Pomocí Aspose.PSD pro .NET API mohou vývojáři aplikovat mediánový filtr k odstranění šumu z obrázku a mohou aplikovat gauss wiener filtr na obrázky. Tento článek ukazuje, jak mohou být mediánový filtr a gauss wiener filtr aplikovány na obrázky.
Použití Mediánového Filtru
Aspose.PSD poskytuje třídu MedianFilterOptions k použití filtru na RasterImage. Následující ukázka kódu ukazuje, jak aplikovat mediánový filtr na rastrový obrázek.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string sourceFile = dataDir + @"sample.psd"; | |
string destName = dataDir + @"median_test_denoise_out.gif"; | |
// Load the noisy image | |
using (Image image = Image.Load(sourceFile)) | |
{ | |
// Cast the image into RasterImage | |
RasterImage rasterImage = image as RasterImage; | |
if (rasterImage == null) | |
{ | |
return; | |
} | |
// Create an instance of MedianFilterOptions class and set the size, Apply MedianFilterOptions filter to RasterImage object and Save the resultant image | |
MedianFilterOptions options = new MedianFilterOptions(4); | |
rasterImage.Filter(image.Bounds, options); | |
image.Save(destName, new GifOptions()); | |
} |
Použití Gauss Wiener Filtru
Aspose.PSD poskytuje třídu GaussWienerFilterOptions k použití filtru na RasterImage. Následující ukázka kódu ukazuje, jak aplikovat gauss wiener filtr na rastrový obrázek.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string sourceFile = dataDir + @"sample.psd"; | |
string destName = dataDir + @"gauss_wiener_out.gif"; | |
// Load the noisy image | |
using (Image image = Image.Load(sourceFile)) | |
{ | |
RasterImage rasterImage = image as RasterImage; | |
if (rasterImage == null) | |
{ | |
return; | |
} | |
// Create an instance of GaussWienerFilterOptions class and set the radius size and smooth value. | |
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3); | |
options.Grayscale = true; | |
// Apply MedianFilterOptions filter to RasterImage object and Save the resultant image | |
rasterImage.Filter(image.Bounds, options); | |
image.Save(destName, new GifOptions()); | |
} |
Použití Gauss Wiener Filtru Pro Barevný obrázek
Aspose.PSD poskytuje třídu GaussWienerFilterOptions i pro barevné obrázky. Následující ukázka kódu ukazuje, jak aplikovat gauss wiener filtr na barevný obrázek.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string sourceFile = dataDir + @"sample.psd"; | |
string destName = dataDir + @"gauss_wiener_color_out.gif"; | |
// Load the noisy image | |
using (Image image = Image.Load(sourceFile)) | |
{ | |
// Cast the image into RasterImage | |
RasterImage rasterImage = image as RasterImage; | |
if (rasterImage == null) | |
{ | |
return; | |
} | |
// Create an instance of GaussWienerFilterOptions class and set the radius size and smooth value. | |
GaussWienerFilterOptions options = new GaussWienerFilterOptions(5, 1.5); | |
options.Brightness = 1; | |
// Apply MedianFilterOptions filter to RasterImage object and Save the resultant image | |
rasterImage.Filter(image.Bounds, options); | |
image.Save(destName, new GifOptions()); | |
} |
Použití Motion Wiener Filtru
Aspose.PSD poskytuje třídu MotionWienerFilterOptions k použití filtru na RasterImage. Následující ukázka kódu ukazuje, jak aplikovat motion wiener filtr na rastrový obrázek.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string sourceFile = dataDir + @"sample.psd"; | |
string destName = dataDir + @"motion_filter_out.gif"; | |
// Load the noisy image | |
using (Image image = Image.Load(sourceFile)) | |
{ | |
// Cast the image into RasterImage | |
RasterImage rasterImage = image as RasterImage; | |
if (rasterImage == null) | |
{ | |
return; | |
} | |
// Create an instance of MotionWienerFilterOptions class and set the length, smooth value and angle. | |
MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90); | |
options.Grayscale = true; | |
// Apply MedianFilterOptions filter to RasterImage object and Save the resultant image | |
rasterImage.Filter(image.Bounds, options); | |
image.Save(destName, new GifOptions()); | |
} |
Aplikovat korekční filtr na obrázek
Tento článek ukazuje použití Aspose.PSD pro .NET k provedení korekčních filtrů na obrázku. API Aspose.PSD poskytuje efektivní a snadno použitelné metody k dosažení tohoto cíle. Aspose.PSD pro .NET vystavil třídy BilateralSmoothingFilterOptions a SharpenFilterOptions pro filtrace. Třída BilateralSmoothingFilterOptions vyžaduje celé číslo jako velikost. Kroky k provedení změn jsou jednoduché, jak je uvedeno níže:
- Načtěte obrázek pomocí tovární metody Load vystavené třídou Image.
- Převeďte obrázek na RasterImage.
- Vytvořte instanci tříd BilateralSmoothingFilterOptions a SharpenFilterOptions.
- Zavolejte metodu RasterImage.Filter a zároveň specifikujte obdélník jako ohraničení obrázku a instanci třídy BilateralSmoothingFilterOptions.
- Zavolejte metodu RasterImage.Filter a zároveň specifikujte obdélník jako ohraničení obrázku a instanci třídy SharpenFilterOptions.
- Upravte kontrast.
- Nastavte jas.
- Uložte výsledky.
Použijte algoritmus prahování Bradley
Prahování obrázků se používá v grafických aplikacích. Cílem prahování obrázku je klasifikovat pixely jako „tmavé“ nebo „světlé“. API Aspose.PSD vám umožňuje použít Bradleyské prahování při převodu obrázků. Následující ukázka kódu ukazuje, jak definovat hodnotu prahu a pak spustit Bradleyský prahovací algoritmus.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET | |
string sourceFile = dataDir + @"sample.psd"; | |
string destName = dataDir + @"binarized_out.png"; | |
// Load the noisy image | |
// Load an image | |
using (PsdImage image = (PsdImage)Image.Load(sourceFile)) | |
{ | |
// Define threshold value, Call BinarizeBradley method and pass the threshold value as parameter and Save the output image | |
double threshold = 0.15; | |
image.BinarizeBradley(threshold); | |
image.Save(destName, new PngOptions()); | |
} |