Appliquer les filtres médian et Wiener aux images en Python

Dans divers cas, vous devez débruiter les images pour améliorer leur qualité visuelle. Ceci est utile lorsque vous souhaitez améliorer la clarté globale de vos images. En outre, le débruitage est utilisé pour pré-traiter les images avant une analyse plus approfondie telle que la reconnaissance, la segmentation, etc. Les filtres médian et wiener sont couramment utilisés pour débruiter et lisser les images. Voyons donc comment appliquer des filtres médian et wiener sur des images en Python.

Bibliothèque Python pour appliquer des filtres d’image médian et Wiener

Pour appliquer les filtres médian et wiener sur les images, nous utiliserons Aspose.Imaging for Python - une puissante bibliothèque de traitement d’image qui vous permet de manipuler les images sans effort. Pour utiliser la bibliothèque, vous pouvez soit la télécharger soit l’installer à l’aide de la commande suivante.

> pip install aspose-imaging-python-net 

Appliquer le filtre médian à une image en Python

Le filtre médian est une méthode de débruitage couramment utilisée qui utilise une technique de filtrage numérique non linéaire. Voici les étapes pour appliquer un filtre médian à une image en Python.

  • Tout d’abord, chargez l’image à l’aide de la méthode Image.load().
  • Ensuite, convertissez l’image en type RasterImage.
  • Créez une instance de la classe MedianFilterOptions et initialisez-la avec la taille du rectangle.
  • Appliquez le filtre médian à l’aide de la méthode RasterImage.filter(Rectangle, MedianFilterOptions).
  • Enfin, enregistrez l’image filtrée à l’aide de la méthode RasterImage.save().

L’exemple de code suivant montre comment appliquer un filtre médian à une image 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
# Charger l'image bruitée 
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Convertir l'image en RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Créez une instance de la classe MedianFilterOptions et définissez la taille, appliquez le filtre MedianFilterOptions à l'objet RasterImage et enregistrez l'image résultante
		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"))

Ci-dessous, l’image avant et après l’application du filtre médian.

Appliquer le filtre médian à l'image Python

Appliquer le filtre Gauss Wiener à une image en Python

Gauss wiener est une autre méthode couramment utilisée pour améliorer la clarté et réduire le bruit dans les images. Examinons les étapes nécessaires pour appliquer le filtre Gauss wiener à une image en Python.

  • Tout d’abord, chargez l’image à l’aide de la méthode Image.load().
  • Ensuite, convertissez l’image en type RasterImage.
  • Créez une instance de la classe GaussWienerFilterOptions et initialisez-la avec la taille du rayon et la valeur lisse.
  • (Facultatif) Pour obtenir une image en niveaux de gris, définissez la propriété GaussWienerFilterOptions.grayscale sur true.
  • Appliquez le filtre Gauss wiener à l’aide de la méthode RasterImage.filter(Rectangle, GaussWienerFilterOptions).
  • Enfin, enregistrez l’image résultante à l’aide de la méthode RasterImage.save().

L’exemple de code suivant montre comment appliquer un filtre Gauss Wiener à une image 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
# Charger l'image
with Image.load(os.path.join(data_dir, "template.jpg")) as image:
	# Convertir l'image en RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Créez une instance de la classe GaussWienerFilterOptions et définissez la taille du rayon et la valeur de lissage.
		options = GaussWienerFilterOptions(12, 3)
		options.grayscale = True
		# Appliquer le filtre MedianFilterOptions à l'objet RasterImage et enregistrer l'image résultante
		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"))

Ci-dessous, l’image avant et après l’application du filtre Gauss Wiener avec l’option Niveaux de gris.

Appliquer le filtre Gauss Weiner à l'échelle de gris de l'image

Voici l’image avant et après l’application du filtre Gauss Wiener sans échelle de gris.

Appliquer le filtre de couleur Gauss Weiner à l'image

Filtre Motion Wiener pour une image en Python

Le filtre Motion Wiener est utilisé pour réduire le flou ou la dégradation causée par le flou de mouvement. Ce type de flou se produit en raison du mouvement relatif entre la caméra et l’objet. Voici les étapes pour appliquer le filtre de mouvement Wiener à une image en Python.

  • Tout d’abord, chargez l’image à l’aide de la méthode Image.load().
  • Ensuite, convertissez l’image en type RasterImage.
  • Créez une instance de la classe MotionWienerFilterOptions et initialisez-la avec la longueur, la valeur de lissage et l’angle.
  • Appliquez le filtre de mouvement Wiener à l’aide de la méthode RasterImage.filter(Rectangle, MotionWienerFilterOptions).
  • Enfin, enregistrez l’image résultante à l’aide de la méthode RasterImage.save().

L’exemple de code suivant montre comment appliquer un filtre Wiener de mouvement à une image 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
# Charger l'image
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Convertir l'image en RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Créez une instance de la classe MotionWienerFilterOptions et définissez la longueur, la valeur de lissage et l'angle.
		options = MotionWienerFilterOptions(50, 9, 90)
		options.grayscale = True
		# Appliquer le filtre MedianFilterOptions à l'objet RasterImage et enregistrer l'image résultante
		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"))
Appliquer le filtre Motion Weiner à l'image en Python

Bibliothèque gratuite de filtres d’images Python

Vous pouvez obtenir une licence temporaire gratuite et appliquer des filtres médians et Wiener aux images sans limitation d’évaluation.

Application d’édition d’images en ligne gratuite

Utilisez notre outil gratuit d’édition d’images en ligne pour éditer vos images en ligne. Cet éditeur d’images utilise Aspose.Imaging for Python et ne vous demande pas de créer un compte.

Conclusion

Dans cet article, vous avez appris à appliquer des filtres médian et wiener aux images en Python. Les étapes et les exemples de code ont montré comment appliquer différents types de filtres pour débruiter les images par programmation. De plus, nous avons expliqué comment réduire le bruit des objets en mouvement dans une image à l’aide d’un filtre de mouvement Wiener. Enfin, nous vous avons fourni une application d’édition d’images en ligne entièrement gratuite et vous pouvez l’utiliser sans vous inscrire.

Vous pouvez en savoir plus sur la bibliothèque de traitement d’image Python en utilisant documentation. Vous pouvez également partager vos questions avec nous via notre forum.

Voir également