Застосування медійного та Вінера фільтрів

Застосування медійного та Вінера фільтрів

Медійний фільтр - це нелінійний цифровий метод фільтрації, який часто використовується для видалення шуму. Таке зменшення шуму - типовий етап попередньої обробки для покращення результатів подальшої обробки. Фільтр Вінера є оптимальним лінійним фільтром мінімізації середньоквадратичної помилки для зображень, збурених адитивним шумом і розмиттям. За допомогою 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 для виконання корекційних фільтрів на зображення. API Aspose.PSD надає ефективні та прості методи для досягнення цієї мети. Aspose.PSD для .NET розкрив класи BilateralSmoothingFilterOptions і SharpenFilterOptions для фільтрації. Клас BilateralSmoothingFilterOptions потребує ціле число як розмір. Кроки для виконання зменшення прості, як наведено нижче:

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

Використання алгоритму порога Брейдлі

Порогова обробка зображень використовується в графічних додатках. Мета порогування зображення полягає в класифікації пікселів як “темних” або “світлих”. API Aspose.PSD дозволяє використовувати порог Брейдлі при конвертації зображень. Наведений код показує, як визначити значення порога і викликати алгоритм порогування Брейдлі.

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