Редагування зображень використовується в різних програмах для обробки зображень для подальшої обробки. Ми написали серію блогів, наприклад обтинання, обертання, розмивання тощо, які є корисними для вас, щоб реалізувати функції редагування зображень у ваших програмах. У цій статті ми покажемо вам, як застосувати медіанний і вінерівський фільтри, які зазвичай використовуються для усунення шумів і згладжування зображень. Отже, давайте подивимося, як застосувати медіанний і вінер-файлери до зображення програмним шляхом у C#.
- C# API для застосування медіани та фільтрів Вінера
- Застосування медіанного фільтра до зображення в C#
- Застосуйте фільтр Гауса Вінера до зображення
- Вінерівська фільтрація зображення
C# API для застосування медіанних і вінерівських фільтрів зображень — безкоштовне завантаження
Aspose.Imaging for .NET — це дивовижний API для реалізації функцій редагування зображень у програмах .NET. Ми використовуватимемо цей API для застосування медіанного та вінерівського фільтрів до зображень. Ви можете завантажити API або встановити його з NuGet.
PM> Install-Package Aspose.Imaging
Застосування медіанного фільтра до зображення в C#
Медіанний фільтр — це техніка нелінійної цифрової фільтрації, яка використовується для зменшення шуму в зображеннях. Нижче наведено кроки для застосування медіанного фільтра до зображення в C#.
- Спочатку завантажте зображення за допомогою методу Image.Load().
- Потім переведіть зображення до типу RasterImage.
- Створіть екземпляр класу MedianFilterOptions та ініціалізуйте його розміром прямокутника.
- Застосуйте медіанний фільтр за допомогою методу RasterImage.Filter(Rectangle, MedianFilterOptions).
- Нарешті, збережіть отримане зображення за допомогою методу RasterImage.Save().
У наведеному нижче прикладі коду показано, як застосувати медіанний фільтр до зображення в C#.
// Завантажте зображення з шумом
using (Image image = Image.Load("jack.jpg"))
{
// Переведіть зображення в RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Створіть екземпляр класу MedianFilterOptions і встановіть розмір
MedianFilterOptions options = new MedianFilterOptions(4);
// Застосувати фільтр і зберегти зображення
rasterImage.Filter(image.Bounds, options);
image.Save("jack_median.jpg");
}
Нижче наведено зображення до та після застосування медіанного фільтра.
Застосування фільтра Гауса Вінера до зображення в C#
Іншим широко використовуваним методом мінімізації додаткового шуму та розмиття зображень є Гаусс Вінер. Нижче наведено кроки для застосування фільтра Гауса Вінера до зображення в C#.
- Спочатку завантажте зображення за допомогою методу Image.Load().
- Потім переведіть зображення до типу RasterImage.
- Створіть екземпляр класу GaussWienerFilterOptions та ініціалізуйте його розміром радіуса та згладженим значенням.
- (Необов’язково) Щоб отримати зображення у відтінках сірого, установіть для властивості GaussWienerFilterOptions.Grayscale значення true.
- Застосуйте фільтр Гауса Вінера за допомогою методу RasterImage.Filter(Rectangle, GaussWienerFilterOptions).
- Нарешті, збережіть отримане зображення за допомогою методу RasterImage.Save().
У наведеному нижче прикладі коду показано, як застосувати фільтр Гауса Вінера до зображення в C#.
// Завантажте зображення з шумом
using (Image image = Image.Load("jack.jpg"))
{
// Переведіть зображення в RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Створіть екземпляр класу GaussWienerFilterOptions і встановіть розмір радіуса та значення гладкості
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.Grayscale = true;
// Застосуйте фільтр MedianFilterOptions до об’єкта RasterImage і збережіть отримане зображення
rasterImage.Filter(image.Bounds, options);
image.Save("jack_guass.jpg");
}
Нижче наведено зображення до та після застосування Вінер-фільтра Гауса з опцією відтінків сірого.
Нижче наведено зображення до та після застосування фільтра Гауса Вінера без відтінків сірого.
Застосування фільтра Motion Wiener до зображення в C#
Вінер-фільтр руху використовується для усунення розмиття зображення, яке виникає через рух об’єктів. Нижче наведено кроки, щоб застосувати фільтр руху Вінера до зображення в C#.
- Спочатку завантажте зображення за допомогою методу Image.Load().
- Потім переведіть зображення до типу RasterImage.
- Створіть екземпляр класу MotionWienerFilterOptions та ініціалізуйте його довжиною, згладженим значенням і кутом.
- Застосуйте фільтр руху Вінера за допомогою методу RasterImage.Filter(Rectangle, MotionWienerFilterOptions).
- Нарешті, збережіть отримане зображення за допомогою методу RasterImage.Save().
У наведеному нижче прикладі коду показано, як застосувати фільтр руху Вінер до зображення в C#.
// Завантажте зображення з шумом
using (Image image = Image.Load("jack.jpg"))
{
// Переведіть зображення в RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Створіть екземпляр класу MotionWienerFilterOptions і встановіть довжину, значення гладкості та кут
MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
options.Grayscale = true;
// Застосуйте фільтр MedianFilterOptions до об’єкта RasterImage і збережіть отримане зображення
rasterImage.Filter(image.Bounds, options);
image.Save("jack_MotionWiener.jpg");
}
C# Median і Wiener Image Filtering API — отримайте безкоштовну ліцензію
Ви можете отримати безкоштовну тимчасову ліцензію і застосувати медіанний і вінеровий фільтри до зображень без обмежень оцінки.
Висновок
У цій статті ви дізналися, як застосовувати медіанний і вінерівський фільтри до зображень у C#. Крім того, ми розглянули, як зменшити шум рухомих об’єктів на зображенні. Ви можете легко використовувати ці функції у своїй програмі C# для інтеграції можливостей редагування зображень.
Детальніше
Ви можете дізнатися більше про API обробки зображень .NET за допомогою документації. Крім того, ви можете поділитися своїми запитами з нами через наш форум.