Applica filtri mediani e Wiener alle immagini in Python

In vari casi, è necessario eliminare il rumore delle immagini per migliorarne la qualità visiva. Questo è utile quando vuoi migliorare la chiarezza generale delle tue immagini. Inoltre, il denoising viene utilizzato per pre-elaborare le immagini prima di ulteriori analisi come il riconoscimento, la segmentazione e così via. I filtri mediano e wiener sono comunemente usati per eliminare il rumore e uniformare le immagini. Quindi diamo un’occhiata a come applicare filtri mediani e wiener sulle immagini in Python.

Libreria Python per applicare filtri immagine mediana e viennese

Per applicare i filtri mediana e wiener sulle immagini, useremo Aspose.Imaging for Python - una potente libreria di elaborazione delle immagini che ti consente di manipolare le immagini senza sforzo. Per utilizzare la libreria, puoi scaricare o installarla utilizzando il seguente comando.

> pip install aspose-imaging-python-net 

Applicare il filtro mediano a un’immagine in Python

Il filtro mediano è un metodo di riduzione del rumore comunemente utilizzato che utilizza una tecnica di filtraggio digitale non lineare. Di seguito sono riportati i passaggi per applicare un filtro mediano a un’immagine in Python.

  • Innanzitutto, carica l’immagine usando il metodo Image.load().
  • Quindi, trasmette l’immagine al tipo RasterImage.
  • Crea un’istanza della classe MedianFilterOptions e inizializzala con la dimensione del rettangolo.
  • Applicare il filtro mediano utilizzando il metodo RasterImage.filter(Rectangle, MedianFilterOptions).
  • Infine, salva l’immagine filtrata usando il metodo RasterImage.save().

L’esempio di codice seguente mostra come applicare un filtro mediano a un’immagine in 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
# Carica l'immagine rumorosa 
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Trasmetti l'immagine in RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Crea un'istanza della classe MedianFilterOptions e imposta la dimensione, applica il filtro MedianFilterOptions all'oggetto RasterImage e salva l'immagine risultante
		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"))

Di seguito l’immagine prima e dopo l’applicazione del filtro mediano.

Applica il filtro mediano all'immagine Python

Applica il filtro Gauss Wiener a un’immagine in Python

Gauss wiener è un altro metodo comunemente usato per migliorare la chiarezza e ridurre il rumore nelle immagini. Diamo un’occhiata ai passaggi necessari per applicare il filtro Gauss wiener a un’immagine in Python.

  • Innanzitutto, carica l’immagine usando il metodo Image.load().
  • Quindi, trasmette l’immagine al tipo RasterImage.
  • Crea un’istanza della classe GaussWienerFilterOptions e inizializzala con la dimensione del raggio e il valore uniforme.
  • (Facoltativo) Per ottenere un’immagine in scala di grigi, imposta la proprietà GaussWienerFilterOptions.grayscale su true.
  • Applicare il filtro Wiener Gauss utilizzando il metodo RasterImage.filter(Rectangle, GaussWienerFilterOptions).
  • Infine, salva l’immagine risultante utilizzando il metodo RasterImage.save().

L’esempio di codice seguente mostra come applicare un filtro Gauss Wiener a un’immagine in 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
# Carica l'immagine
with Image.load(os.path.join(data_dir, "template.jpg")) as image:
	# Trasmetti l'immagine in RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Crea un'istanza della classe GaussWienerFilterOptions e imposta la dimensione del raggio e il valore di smooth.
		options = GaussWienerFilterOptions(12, 3)
		options.grayscale = True
		# Applicare il filtro MedianFilterOptions all'oggetto RasterImage e salvare l'immagine risultante
		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"))

Di seguito l’immagine prima e dopo l’applicazione del filtro Gauss wiener con l’opzione scala di grigi.

Applica il filtro Gauss Weiner alla scala di grigi dell'immagine

Quella che segue è l’immagine prima e dopo l’applicazione del filtro Gauss wiener senza scala di grigi.

Applica filtro colore Gauss Weiner all'immagine

Filtro Motion Wiener per un’immagine in Python

Il filtro Motion Wiener viene utilizzato per ridurre la sfocatura o il degrado causato dall’effetto movimento. Questo tipo di sfocatura si verifica a causa del movimento relativo tra la fotocamera e l’oggetto. Di seguito sono riportati i passaggi per applicare il filtro Motion Wiener a un’immagine in Python.

  • Innanzitutto, carica l’immagine usando il metodo Image.load().
  • Quindi, trasmette l’immagine al tipo RasterImage.
  • Crea un’istanza della classe MotionWienerFilterOptions e inizializzala con lunghezza, valore uniforme e angolo.
  • Applicare il filtro motion wiener utilizzando il metodo RasterImage.filter(Rectangle, MotionWienerFilterOptions).
  • Infine, salva l’immagine risultante utilizzando il metodo RasterImage.save().

L’esempio di codice seguente mostra come applicare un filtro Motion Wiener a un’immagine in 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
# Carica l'immagine
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Trasmetti l'immagine in RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Crea un'istanza della classe MotionWienerFilterOptions e imposta la lunghezza, il valore uniforme e l'angolo.
		options = MotionWienerFilterOptions(50, 9, 90)
		options.grayscale = True
		# Applicare il filtro MedianFilterOptions all'oggetto RasterImage e salvare l'immagine risultante
		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"))
Applica il filtro Motion Weiner all'immagine in Python

Libreria di filtri immagine Python gratuita

Puoi ottenere una licenza temporanea gratuita e applicare filtri mediani e wiener alle immagini senza limiti di valutazione.

App di modifica delle immagini online gratuita

Utilizza il nostro strumento gratuito di modifica delle immagini basato sul Web per modificare le tue immagini online. Questo editor di immagini utilizza Aspose.Imaging for Python e non ti chiede di creare un account.

Conclusione

In questo articolo, hai imparato come applicare filtri mediani e wiener alle immagini in Python. I passaggi e gli esempi di codice hanno dimostrato come applicare diversi tipi di filtri per eliminare il rumore delle immagini a livello di codice. Inoltre, abbiamo spiegato come ridurre il rumore degli oggetti in movimento in un’immagine utilizzando un filtro Motion Wiener. Infine, ti abbiamo fornito un’app di modifica delle immagini online che è completamente gratuita e puoi usarla senza registrarti.

Puoi esplorare di più sulla libreria di elaborazione delle immagini Python usando documentazione. Inoltre, puoi condividere le tue domande con noi tramite il nostro forum.

Guarda anche