Applicazione dei filtri mediano e Wiener
Applicazione dei filtri mediano e Wiener
Il filtro mediano è una tecnica di filtraggio digitale non lineare, spesso utilizzata per rimuovere il rumore. Tale riduzione del rumore è un tipico passaggio di pre-elaborazione per migliorare i risultati dell’elaborazione successiva. Il filtro di Wiener è il filtro lineare stazionario ottimale MSE (errore quadratico medio) per le immagini degradate da rumore additivo e sfocatura. Utilizzando Aspose.PSD per gli sviluppatori API .NET è possibile applicare un filtro mediano per eliminare il rumore dall’immagine e applicare un filtro wiener gaussiano sulle immagini. Questo articolo illustra come il filtro mediano e il filtro wiener gaussiano possono essere applicati alle immagini.
Applicazione del filtro mediano
Aspose.PSD fornisce la classe MedianFilterOptions per applicare un filtro su un RasterImage. La porzione di codice fornita di seguito illustra come applicare il filtro mediano a un’immagine raster.
// 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()); | |
} |
Applicazione del filtro Wiener gaussiano
Aspose.PSD fornisce la classe GaussWienerFilterOptions per applicare un filtro su un RasterImage. La porzione di codice fornita di seguito illustra come applicare il filtro wiener gaussiano a un’immagine raster.
// 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()); | |
} |
Applicazione del filtro Wiener gaussiano per immagini a colori
Aspose.PSD fornisce GaussWienerFilterOptions anche per immagini a colori. La porzione di codice fornita di seguito illustra come applicare il filtro wiener gaussiano a un’immagine a colori.
// 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()); | |
} |
Applicazione del filtro Wiener di movimento
Aspose.PSD fornisce la classe MotionWienerFilterOptions per applicare un filtro su un RasterImage. La porzione di codice fornita di seguito illustra come applicare un filtro di Wiener di movimento a un’immagine raster.
// 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()); | |
} |
Applica un filtro di correzione su un’immagine
Questo articolo illustra l’uso di Aspose.PSD per .NET per eseguire filtri di correzione su un’immagine. Le API di Aspose.PSD hanno esposto metodi efficienti e facili da usare per raggiungere questo obiettivo. Aspose.PSD per .NET ha esposto le classi BilateralSmoothingFilterOptions e SharpenFilterOptions per la filtrazione. La classe BilateralSmoothingFilterOptions necessita di un intero come dimensione. I passaggi per eseguire il ridimensionamento sono semplici come segue:
- Carica un’immagine utilizzando il metodo di fabbrica Load esposto dalla classe Image.
- Converti l’immagine in RasterImage.
- Crea un’istanza delle classi BilateralSmoothingFilterOptions e SharpenFilterOptions.
- Chiama il metodo RasterImage.Filter specificando il rettangolo come limiti dell’immagine e un’istanza della classe BilateralSmoothingFilterOptions.
- Chiama il metodo RasterImage.Filter specificando il rettangolo come limiti dell’immagine e un’istanza della classe SharpenFilterOptions.
- Regola il contrasto
- Imposta la luminosità
- Salva i risultati.
Utilizza l’algoritmo di soglia di Bradley
La sogliatura dell’immagine è utilizzata nelle applicazioni grafiche. L’obiettivo della sogliatura di un’immagine è classificare i pixel come “scuri” o “chiari”. L’API di Aspose.PSD ti consente di utilizzare la sogliatura di Bradley durante la conversione delle immagini. La porzione di codice seguente mostra come definire il valore di soglia e quindi invocare l’algoritmo di soglia di Bradley.
// 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()); | |
} |