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:

  1. Carica un’immagine utilizzando il metodo di fabbrica Load esposto dalla classe Image.
  2. Converti l’immagine in RasterImage.
  3. Crea un’istanza delle classi BilateralSmoothingFilterOptions e SharpenFilterOptions.
  4. Chiama il metodo RasterImage.Filter specificando il rettangolo come limiti dell’immagine e un’istanza della classe BilateralSmoothingFilterOptions.
  5. Chiama il metodo RasterImage.Filter specificando il rettangolo come limiti dell’immagine e un’istanza della classe SharpenFilterOptions.
  6. Regola il contrasto
  7. Imposta la luminosità
  8. 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());
}