Прилагане на Медианен и Уинър Филтри

Прилагане на Медианен и Уинър Филтри

Медианният филтър е нелинеен цифров филтър, често използван за премахване на шум. Такова намаляване на шума е типична предварителна обработка, която подобрява резултатите от по-късната обработка. Уинър-филтърът е оптималният стационарен линеен филтър за средно квадратично отклонение(MSE), приложим за изображения, деградирани от добавяне на шум и размазване. Чрез Aspose.PSD API за .NET разработчиците могат да прилагат медиен филтър за премахване на шум от изображението и да приложат филтър на Гаус Уинър за изображения. Тази статия демонстрира как медиен филтър и Гаус Уинър филтър могат да бъдат приложени към изображения.

Прилагане на Медианен Филтър

Aspose.PSD предоставя класа MedianFilterOptions за прилагане на филтър върху RasterImage. Долната предоставена част от кода демонстрира как да се приложи медиен филтър върху растерно изображение.

// 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());
}

Прилагане на Филтър Гаус Уинър

Aspose.PSD предоставя класа GaussWienerFilterOptions за прилагане на филтър върху RasterImage. Долната предоставена част от кода демонстрира как да се приложи филтър Гаус Уинър върху растерно изображение.

// 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());
}

Прилагане на Филтър Гаус Уинър за Цветно изображение

Aspose.PSD предоставя GaussWienerFilterOptions и за цветни изображения. Долната предоставена част от кода демонстрира как да се приложи филтър Гаус Уинър върху цветно изображение.

// 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());
}

Прилагане на Филтър Моушън Уинър

Aspose.PSD предоставя класа MotionWienerFilterOptions за прилагане на филтър върху RasterImage. Долната предоставена част от кода демонстрира как да се приложи филтър моушън уинър върху растерно изображение.

// 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());
}

Прилагане на Филтър за Корекция върху изображение

Тази статия демонстрира използването на Aspose.PSD за .NET за извършване на корекционни филтри върху изображение. Aspose.PSD API представя ефикасни и лесни за използване методи за постигане на тази цел. Aspose.PSD за .NET е изложил класовете BilateralSmoothingFilterOptions и SharpenFilterOptions за филтрация. Класът BilateralSmoothingFilterOptions изисква цяло число като размер. Стъпките за извършване на resize са толкова прости, както следва:

  1. Заредете изображение, използвайки фабричния метод Load, предоставен от класа Image.
  2. Конвертирайте изображението в RasterImage.
  3. Създайте инстанция на класовете BilateralSmoothingFilterOptions и SharpenFilterOptions.
  4. Извикайте метода RasterImage.Filter, като посочите правоъгълника като граници на изображението и инстанция на класа BilateralSmoothingFilterOptions.
  5. Извикайте метода RasterImage.Filter, като посочите правоъгълника като граници на изображението и инстанция на класа SharpenFilterOptions.
  6. Настройте контраста.
  7. Задайте яркостта.
  8. Запазете резултатите.

Използване на Алгоритъма за Праг на Брадли

Прагът за изображение се използва в графични приложения. Целта на прага за изображение е да класифицира пикселите като “тъмни” или “светли”. Aspose.PSD API ви позволява да използвате прага на Брадли, докато преобразувате изображения. Долната част от кода ви показва как да дефинирате стойността на прага и след това да извикате алгоритъма за прага на Брадли.

// 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());
}