Utilizzo delle funzioni di convoluzione¶

Panoramica¶

Vengono fornite due funzioni di convoluzione. Sono importati come:

>>> from astropy.convolution import convolve, convolve_fft

e sono entrambi usati come:

>>> result = convolve(image, kernel) >>> result = convolve_fft(image, kernel) 

convolve() è implementato come algoritmo di convoluzione diretta, mentre convolve_fft() utilizza un FourierTransform veloce (FFT). Quindi, il primo è migliore per i kernel piccoli, mentre il secondoè molto più efficiente per i kernel più grandi.

Le immagini e i kernel di input dovrebbero essere elenchi o numpy array con 1,2 o 3 dimensioni (e il numero di dimensioni dovrebbe essere lo stesso per theimage e kernel). Il risultato è un array numpy con le stesse dimensioni dell’immagine di input. La convoluzione viene sempre eseguita in virgola mobile.

La funzione convolve() accetta un argomento opzionale boundary= che descrive come eseguire la convoluzione sul bordo dell’array. I valori per boundary possono essere:

  • None: imposta i valori dei risultati a zero dove il kernel si estende oltre il bordo dell’array (predefinito).

  • 'fill': impostare i valori al di fuori del limite dell’array su una costante. Se viene specificata thisoption, la costante deve essere specificata utilizzando l’argomentofill_value=, che per impostazione predefinita è zero.

  • 'wrap': supponiamo che i confini siano periodici.

  • 'extend' : impostare i valori esterni all’array sul valore dell’array più vicino.

Per impostazione predefinita, il kernel non è normalizzato. Per normalizzarlo prima della convoluzione, utilizzare:

>>> result = convolve(image, kernel, normalize_kernel=True) 

You might also like

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.