Aplicar filtros medianos y Wiener a imágenes en Python

En varios casos, debe eliminar el ruido de las imágenes para mejorar su calidad visual. Esto es útil cuando desea mejorar la claridad general de sus imágenes. Además, la eliminación de ruido se utiliza para preprocesar las imágenes antes de su posterior análisis, como el reconocimiento, la segmentación, etc. Los filtros mediano y wiener se usan comúnmente para eliminar el ruido y suavizar las imágenes. Entonces, echemos un vistazo a cómo aplicar filtros de mediana y de salchicha en imágenes en Python.

Biblioteca de Python para aplicar filtros de imagen mediana y Wiener

Para aplicar los filtros mediano y wiener en las imágenes, usaremos Aspose.Imaging for Python, una poderosa biblioteca de procesamiento de imágenes que le permite manipular imágenes sin esfuerzo. Para usar la biblioteca, puede descargar o instalarla usando el siguiente comando.

> pip install aspose-imaging-python-net 

Aplicar filtro mediano a una imagen en Python

El filtro mediano es un método de eliminación de ruido de uso común que utiliza una técnica de filtrado digital no lineal. Los siguientes son los pasos para aplicar un filtro mediano a una imagen en Python.

  • 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 filtrada usando el método RasterImage.save().

El siguiente ejemplo de código muestra cómo aplicar un filtro mediano a una imagen en Python.

import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import MedianFilterOptions
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# Carga la imagen ruidosa 
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Transmitir la imagen en RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Cree una instancia de la clase MedianFilterOptions y establezca el tamaño, aplique el filtro MedianFilterOptions al objeto RasterImage y guarde la imagen resultante
		options = MedianFilterOptions(4)
		raster_image.filter(image.bounds, options)
		image.save(os.path.join(data_dir, "result.gif"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.gif"))

A continuación se muestra la imagen antes y después de aplicar el filtro mediano.

Aplicar filtro mediano a la imagen Python

Aplique el filtro Gauss Wiener a una imagen en Python

Gauss wiener es otro método comúnmente utilizado para mejorar la claridad y reducir el ruido en las imágenes. Echemos un vistazo a los pasos necesarios para aplicar el filtro Wiener de Gauss a una imagen en Python.

  • 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, establezca la propiedad GaussWienerFilterOptions.grayscale en verdadero.
  • Aplique el filtro Wiener de Gauss 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 Wiener de Gauss a una imagen en Python.

import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import GaussWienerFilterOptions
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# Carga la imagen
with Image.load(os.path.join(data_dir, "template.jpg")) as image:
	# Transmitir la imagen en RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Cree una instancia de la clase GaussWienerFilterOptions y establezca el tamaño del radio y el valor de suavizado.
		options = GaussWienerFilterOptions(12, 3)
		options.grayscale = True
		# Aplique el filtro MedianFilterOptions al objeto RasterImage y guarde la imagen resultante
		raster_image.filter(image.bounds, options)
		image.save(os.path.join(data_dir, "result.jpg"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.jpg"))

A continuación se muestra la imagen antes y después de aplicar el filtro Wiener de Gauss con la opción de escala de grises.

Aplicar el filtro Gauss Weiner a la escala de grises de la imagen

La siguiente es la imagen antes y después de aplicar el filtro Wiener de Gauss sin escala de grises.

Aplique el filtro de color Gauss Weiner a la imagen

Filtro Motion Wiener para una imagen en Python

El filtro Motion Wiener se utiliza para reducir el desenfoque o la degradación causados por el desenfoque de movimiento. Este tipo de desenfoque ocurre debido al movimiento relativo entre la cámara y el objeto. Los siguientes son los pasos para aplicar el filtro Wiener de movimiento a una imagen en Python.

  • 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 Python.

import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import MotionWienerFilterOptions
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# Carga la imagen
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Transmitir la imagen en RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Cree una instancia de la clase MotionWienerFilterOptions y establezca la longitud, el valor suave y el ángulo.
		options = MotionWienerFilterOptions(50, 9, 90)
		options.grayscale = True
		# Aplique el filtro MedianFilterOptions al objeto RasterImage y guarde la imagen resultante
		raster_image.filter(image.bounds, options)
		image.save(os.path.join(data_dir, "result.gif"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.gif"))
Aplicar el filtro Motion Weiner a la imagen en Python

Biblioteca gratuita de filtros de imágenes de Python

Puede obtener una licencia temporal gratuita y aplicar filtros medianos y wiener a las imágenes sin limitaciones de evaluación.

Aplicación gratuita de edición de imágenes en línea

Utilice nuestra herramienta gratuita de edición de imágenes basada en la web para editar sus imágenes en línea. Este editor de imágenes utiliza Aspose.Imaging for Python y no le pide que cree una cuenta.

Conclusión

En este artículo, aprendió cómo aplicar filtros medianos y wiener a imágenes en Python. Los pasos y ejemplos de código han demostrado cómo aplicar diferentes tipos de filtros para eliminar el ruido de las imágenes mediante programación. Además, hemos cubierto cómo reducir el ruido de los objetos en movimiento en una imagen usando un filtro Wiener de movimiento. Finalmente, le proporcionamos una aplicación de edición de imágenes en línea que es completamente gratuita y puede usarla sin registrarse.

Puede explorar más sobre la biblioteca de procesamiento de imágenes de Python usando documentación. Además, puede compartir sus consultas con nosotros a través de nuestro foro.

Ver también