de Convolutiefuncties gebruiken¶

overzicht¶

twee convolutiefuncties worden geleverd. Ze worden geïmporteerd als:

>>> from astropy.convolution import convolve, convolve_fft

en worden beide gebruikt als:

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

convolve() wordt geà mplementeerd als een direct convolutiealgoritme, terwijlconvolve_fft() een Fast FourierTransform (FFT) gebruikt. De eerste is dus beter voor kleine kernels, terwijl de laatste veel efficiënter is voor grotere kernels.

de invoerafbeeldingen en kernels moeten lijsten of numpy arrays met 1,2, of 3 dimensies zijn (en het aantal dimensies moet hetzelfde zijn voor de image en kernel). Het resultaat is een numpy array met dezelfde afmetingen als de invoerafbeelding. De convolutie wordt altijd gedaan als drijvende komma.

de functie convolve() neemt een optioneel boundary= argument dat beschrijft hoe de convolutie aan de rand van de array moet worden uitgevoerd. De waarden voor boundary kunnen zijn:

  • None: stel de resultaatwaarden in op nul waar de kernel verder reikt dan de edge van de array (standaard).

  • 'fill': stel waarden buiten de array-grens in op een constante. Als deze optie is opgegeven, moet de constante worden opgegeven met behulp van het fill_value= argument, dat standaard op nul staat.

  • 'wrap': stel dat de grenzen periodiek zijn.

  • 'extend' : stel waarden buiten de array in op de dichtstbijzijnde array-waarde.

standaard is de kernel niet genormaliseerd. Om het te normaliseren voorafgaand aan de convolutie, gebruik:

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

You might also like

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.