Застосуйте медіанний і вінерівський фільтри до зображень у Java

У попередній публікації блогу ми продемонстрували, як додати ефект розмиття до зображень. Сьогодні ми покажемо вам, як застосувати медіанний і вінерівський фільтри, які зазвичай використовуються для зменшення шумів і згладжування зображень. Отже, давайте подивимося, як застосувати медіанний і вінер-файлери до зображення програмним шляхом у Java.

Застосуйте медіанний і вінерський фільтри зображень у Java – встановлення API

Щоб застосувати медіанний і вінер-фільтр до зображень, ми використаємо Aspose.Imaging for Java. Це потужний API для редагування зображень для керування зображеннями з програм Java. Ви можете завантажити API або встановити його за допомогою наведених нижче конфігурацій Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository> 

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging</artifactId>
    <version>22.9</version>
</dependency>

Застосуйте медіанний фільтр до зображення в Java

Медіанний фільтр — це техніка нелінійної цифрової фільтрації, яка є популярним способом усунення шумів на зображеннях. Нижче наведено кроки для застосування медіанного фільтра до зображення в Java.

  • Спочатку завантажте зображення за допомогою методу Image.load().
  • Потім переведіть зображення до типу RasterImage.
  • Створіть екземпляр класу MedianFilterOptions та ініціалізуйте його розміром прямокутника.
  • Застосуйте медіанний фільтр за допомогою методу RasterImage.filter(Rectangle, MedianFilterOptions).
  • Нарешті, збережіть отримане зображення за допомогою методу RasterImage.save().

У наступному прикладі коду показано, як застосувати медіанний фільтр до зображення в Java.

// Завантажте зображення з шумом
Image image = Image.load("jack.jpg");

// перетворити зображення в RasterImage
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// Створіть екземпляр класу MedianFilterOptions і встановіть розмір.
MedianFilterOptions options = new MedianFilterOptions(4);

// Застосуйте фільтр MedianFilterOptions до об’єкта RasterImage.
rasterImage.filter(image.getBounds(), options);

// Збережіть отримане зображення
image.save("Jac_median_denoise.jpg");

Нижче наведено зображення до та після застосування медіанного фільтра.

Застосуйте медіанний фільтр до зображення Java

Застосуйте фільтр Гаусса Вінера до зображення в Java

Гаусс Вінер — ще один широко використовуваний метод градації зображення шляхом мінімізації додаткового шуму та розмиття. Нижче наведено кроки для застосування фільтра Гауса Вінера до зображення в Java.

  • Спочатку завантажте зображення за допомогою методу Image.load().
  • Потім переведіть зображення до типу RasterImage.
  • Створіть екземпляр класу GaussWienerFilterOptions та ініціалізуйте його розміром радіуса та згладженим значенням.
  • (Необов’язково) Щоб отримати зображення у відтінках сірого, використовуйте метод GaussWienerFilterOptions.setGrayscale(true).
  • Застосуйте фільтр Гауса Вінера за допомогою методу RasterImage.filter(Rectangle, GaussWienerFilterOptions).
  • Нарешті, збережіть отримане зображення за допомогою методу RasterImage.save().

У наведеному нижче прикладі коду показано, як застосувати фільтр Гауса Вінера до зображення в Java.

// Завантажте зображення
Image image = Image.load("jack.jpg");

// перетворити зображення в RasterImage
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// Створіть екземпляр класу GaussWienerFilterOptions і встановіть розмір радіуса та значення гладкості.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.setGrayscale(true);

// Застосуйте фільтр GaussWienerFilterOptions до об’єкта RasterImage.
rasterImage.filter(image.getBounds(), options);

// Збережіть отримане зображення
image.save("Jac_guass_weiner.jpg");

Нижче наведено зображення до та після застосування Вінер-фільтра Гауса з опцією відтінків сірого.

Застосуйте фільтр Гауса Вайнера до відтінків сірого зображення

Нижче наведено зображення до та після застосування фільтра Гауса Вінера без відтінків сірого.

Застосуйте кольоровий фільтр Гауса Вайнера до зображення

Використовуйте фільтр Motion Wiener для зображення в Java

Вінер-фільтр руху використовується для усунення розмиття зображення, яке виникає через рух об’єктів. Нижче наведено кроки, щоб застосувати фільтр руху Вінера до зображення в Java.

  • Спочатку завантажте зображення за допомогою методу Image.load().
  • Потім переведіть зображення до типу RasterImage.
  • Створіть екземпляр класу MotionWienerFilterOptions та ініціалізуйте його довжиною, згладженим значенням і кутом.
  • Застосуйте фільтр руху Вінера за допомогою методу RasterImage.filter(Rectangle, MotionWienerFilterOptions).
  • Нарешті, збережіть отримане зображення за допомогою методу RasterImage.save().

У наведеному нижче прикладі коду показано, як застосувати фільтр руху до зображення в Java.

// Завантажте зображення
Image image = Image.load("jack.jpg");

// перетворити зображення в RasterImage
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// Створіть екземпляр класу MotionWienerFilterOptions і встановіть довжину, значення гладкості та кут.
MotionWienerFilterOptions options = new MotionWienerFilterOptions(10, 2, 10);
//options.setGrayscale(true);

// Застосуйте фільтр MotionWienerFilterOptions до об’єкта RasterImage.
rasterImage.filter(image.getBounds(), options);

// Збережіть отримане зображення
image.save("Jac_motion_weiner.jpg");
Застосуйте фільтр Motion Weiner до зображення в Java

Java Image Filtering API – отримайте безкоштовну ліцензію

Ви можете отримати безкоштовну тимчасову ліцензію і застосувати медіанний і вінеровий фільтри до зображень без обмежень оцінки.

Висновок

У цій статті ви дізналися, як застосовувати медіанний і вінерівський фільтри до зображень у Java. Крім того, ми розглянули, як зменшити шум рухомих об’єктів на зображенні. Ви можете легко використовувати ці функції у своїй програмі Java для інтеграції можливостей редагування зображень.

Детальніше

Ви можете дізнатися більше про API обробки зображень Java за допомогою документації. Крім того, ви можете поділитися своїми запитами з нами через наш форум.

Дивись також