У попередній публікації блогу ми продемонстрували, як додати ефект розмиття до зображень. Сьогодні ми покажемо вам, як застосувати медіанний і вінерівський фільтри, які зазвичай використовуються для зменшення шумів і згладжування зображень. Отже, давайте подивимося, як застосувати медіанний і вінер-файлери до зображення програмним шляхом у Java.
- Java API для застосування медіанних і вінерських фільтрів зображень
- Застосуйте медіанний фільтр до зображення в 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.
- Спочатку завантажте зображення за допомогою методу 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");
Java Image Filtering API – отримайте безкоштовну ліцензію
Ви можете отримати безкоштовну тимчасову ліцензію і застосувати медіанний і вінеровий фільтри до зображень без обмежень оцінки.
Висновок
У цій статті ви дізналися, як застосовувати медіанний і вінерівський фільтри до зображень у Java. Крім того, ми розглянули, як зменшити шум рухомих об’єктів на зображенні. Ви можете легко використовувати ці функції у своїй програмі Java для інтеграції можливостей редагування зображень.
Детальніше
Ви можете дізнатися більше про API обробки зображень Java за допомогою документації. Крім того, ви можете поділитися своїми запитами з нами через наш форум.