En la publicación de blog anterior, demostramos cómo agregar el efecto de desenfoque a las imágenes. Hoy, le mostraremos cómo aplicar los filtros mediano y wiener, que se usan comúnmente para eliminar el ruido y suavizar las imágenes. Entonces, veamos cómo aplicar archivadores medianos y wiener a una imagen mediante programación en Java.
- API de Java para aplicar filtros de imagen mediana y Wiener
- Aplicar filtro mediano a una imagen en Java
- Aplicar filtro Gauss Wiener a una imagen
- Motion Wiener Filtrado de una imagen
API de Java para aplicar filtros de imagen Mediana y Wiener - Descarga gratuita
Para aplicar los filtros mediano y wiener en las imágenes, usaremos Aspose.Imaging for Java. Es una potente API de edición de imágenes para manipular las imágenes desde las aplicaciones Java. Puede descargar la API o instalarla usando las siguientes configuraciones de 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>
Aplicar filtro mediano a una imagen en Java
El filtro mediano es una técnica de filtrado digital no lineal, que es una forma popular de eliminar el ruido de las imágenes. Los siguientes son los pasos para aplicar un filtro mediano a una imagen en Java.
- Primero, cargue la imagen usando el método Image.load().
- Luego, convierta la imagen al tipo RasterImage.
- Cree una instancia de la clase MedianFilterOptions e inicialícela con el tamaño del rectángulo.
- Aplique el filtro mediano usando el método RasterImage.filter(Rectangle, MedianFilterOptions).
- Finalmente, guarde la imagen resultante usando el método RasterImage.save().
El siguiente ejemplo de código muestra cómo aplicar un filtro mediano a una imagen en Java.
// Carga la imagen ruidosa
Image image = Image.load("jack.jpg");
// convertir la imagen en RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Cree una instancia de la clase MedianFilterOptions y establezca el tamaño.
MedianFilterOptions options = new MedianFilterOptions(4);
// Aplique el filtro MedianFilterOptions al objeto RasterImage.
rasterImage.filter(image.getBounds(), options);
// Guarda la imagen resultante
image.save("Jac_median_denoise.jpg");
A continuación se muestra la imagen antes y después de aplicar el filtro mediano.
Aplicar el filtro Gauss Wiener a una imagen en Java
Gauss wiener es otro método comúnmente utilizado para la clasificación de imágenes al minimizar el ruido aditivo y el desenfoque. Los siguientes son los pasos para aplicar el filtro gauss wiener a una imagen en Java.
- Primero, cargue la imagen usando el método Image.load().
- Luego, convierta la imagen al tipo RasterImage.
- Cree una instancia de la clase GaussWienerFilterOptions e inicialícela con un tamaño de radio y un valor suave.
- (Opcional) Para obtener una imagen en escala de grises, utilice el método GaussWienerFilterOptions.setGrayscale(true).
- Aplique el filtro gauss wiener usando el método RasterImage.filter(Rectangle, GaussWienerFilterOptions).
- Finalmente, guarde la imagen resultante usando el método RasterImage.save().
El siguiente ejemplo de código muestra cómo aplicar un filtro gauss wiener a una imagen en Java.
// Carga la imagen
Image image = Image.load("jack.jpg");
// convertir la imagen en RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Cree una instancia de la clase GaussWienerFilterOptions y establezca el tamaño del radio y el valor de suavizado.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.setGrayscale(true);
// Aplique el filtro GaussWienerFilterOptions al objeto RasterImage.
rasterImage.filter(image.getBounds(), options);
// Guarda la imagen resultante
image.save("Jac_gauss_weiner.jpg");
A continuación se muestra la imagen antes y después de aplicar el filtro gauss wiener con la opción de escala de grises.
La siguiente es la imagen antes y después de aplicar el filtro gauss wiener sin escala de grises.
Aplique el filtro Motion Wiener a una imagen en Java
El filtro Wiener de movimiento se utiliza para eliminar la borrosidad de una imagen que se produce debido a los objetos en movimiento. Los siguientes son los pasos para aplicar el filtro Wiener de movimiento a una imagen en Java.
- Primero, cargue la imagen usando el método Image.load().
- Luego, convierta la imagen al tipo RasterImage.
- Cree una instancia de la clase MotionWienerFilterOptions e inicialícela con longitud, valor suave y ángulo.
- Aplique el filtro Wiener de movimiento usando el método RasterImage.filter(Rectangle, MotionWienerFilterOptions).
- Finalmente, guarde la imagen resultante usando el método RasterImage.save().
El siguiente ejemplo de código muestra cómo aplicar un filtro de salchicha de movimiento a una imagen en Java.
// Carga la imagen
Image image = Image.load("jack.jpg");
// convertir la imagen en RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Cree una instancia de la clase MotionWienerFilterOptions y establezca la longitud, el valor suave y el ángulo.
MotionWienerFilterOptions options = new MotionWienerFilterOptions(10, 2, 10);
//opciones.setGrayscale(true);
// Aplique el filtro MotionWienerFilterOptions al objeto RasterImage.
rasterImage.filter(image.getBounds(), options);
// Guarda la imagen resultante
image.save("Jac_motion_weiner.jpg");
API de filtrado de imágenes Median y Wiener de Java: obtenga una licencia gratuita
Puede obtener una licencia temporal gratuita y aplicar filtros medianos y wiener a las imágenes sin limitaciones de evaluación.
Conclusión
En este artículo, aprendió a aplicar filtros medianos y wiener a imágenes en Java. Además, hemos cubierto cómo reducir el ruido de los objetos en movimiento en una imagen. Puede usar fácilmente estas funciones en su aplicación Java para integrar capacidades de edición de imágenes.
Lee mas
Puede explorar más sobre la API de procesamiento de imágenes de Java usando documentación. Además, puede compartir sus consultas con nosotros a través de nuestro foro.