Застосування медійного та Вінера фільтрів
Застосування медійного та Вінера фільтрів
Медійний фільтр - це нелінійний цифровий метод фільтрації, який часто використовується для видалення шуму. Таке зменшення шуму - типовий етап попередньої обробки для покращення результатів подальшої обробки. Фільтр Вінера є оптимальним лінійним фільтром мінімізації середньоквадратичної помилки для зображень, збурених адитивним шумом і розмиттям. За допомогою 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 потребує ціле число як розмір. Кроки для виконання зменшення прості, як наведено нижче:
- Завантажте зображення за допомогою фабричного методу Load, що надається класом Image.
- Конвертуйте зображення в RasterImage.
- Створіть екземпляр класів BilateralSmoothingFilterOptions та SharpenFilterOptions.
- Викличте метод RasterImage.Filter, вказавши прямокутник як межі зображення та екземпляр класу BilateralSmoothingFilterOptions.
- Викличте метод RasterImage.Filter, вказавши прямокутник як межі зображення та екземпляр класу SharpenFilterOptions.
- Налаштуйте контрастність
- Встановіть яскравість
- Збережіть результати.
Використання алгоритму порога Брейдлі
Порогова обробка зображень використовується в графічних додатках. Мета порогування зображення полягає в класифікації пікселів як “темних” або “світлих”. 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()); | |
} |