В предыдущем сообщении в блоге мы продемонстрировали, как добавить эффект размытия к изображениям. Сегодня мы собираемся показать вам, как применять медианный и винеровский фильтры, которые обычно используются для шумоподавления и сглаживания изображений. Итак, давайте посмотрим, как программно применить фильтры медианы и Винера к изображению в Java.
- API Java для применения фильтров изображений Median и Wiener
- Применить медианный фильтр к изображению в Java
- Применение фильтра Гуасса Винера к изображению
- Motion Wiener фильтрация изображения
API Java для применения фильтров изображений Median и Wiener — скачать бесплатно
Чтобы применить медианный фильтр и фильтр Винера к изображениям, мы будем использовать 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 и инициализируйте его размером радиуса и значением Smooth.
- (Необязательно) Чтобы получить изображение в градациях серого, используйте метод 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_gauss_weiner.jpg");
Ниже приведено изображение до и после применения фильтра Гуасса Винера с опцией оттенков серого.
Ниже приведено изображение до и после применения фильтра Гуасса Винера без шкалы серого.
Примените фильтр Motion Wiener к изображению в Java
Винеровский фильтр движения используется для устранения размытия изображения, возникающего из-за движущихся объектов. Ниже приведены шаги по применению фильтра Винера движения к изображению в Java.
- Сначала загрузите изображение с помощью метода Image.load().
- Затем приведите изображение к типу RasterImage.
- Создайте экземпляр класса MotionWienerFilterOptions и инициализируйте его длиной, значением сглаживания и углом.
- Примените фильтр Motion Wiener с помощью метода 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 (истина);
// Примените фильтр MotionWienerFilterOptions к объекту RasterImage.
rasterImage.filter(image.getBounds(), options);
// Сохраните полученное изображение
image.save("Jac_motion_weiner.jpg");
Java Median и Wiener Image Filtering API — получите бесплатную лицензию
Вы можете получить бесплатную временную лицензию и применять медианный и винеровский фильтры к изображениям без ограничений оценки.
Вывод
В этой статье вы узнали, как применять медианный фильтр и фильтр Винера к изображениям в Java. Кроме того, мы рассмотрели, как уменьшить шум движущихся объектов на изображении. Вы можете легко использовать эти функции в своем Java-приложении для интеграции возможностей редактирования изображений.
Читать далее
Вы можете узнать больше об API обработки изображений Java, используя документацию. Кроме того, вы можете поделиться с нами своими вопросами через наш форум.