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 hetfill_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)