oversigt liter
to konvolutionsfunktioner leveres. De importeres som:
>>> from astropy.convolution import convolve, convolve_fft
begge bruges som:
>>> result = convolve(image, kernel) >>> result = convolve_fft(image, kernel)
convolve()
implementeres som adirect foldningsalgoritme, mensconvolve_fft()
bruger en Fast FourierTransform (FFT). Således er førstnævnte bedre for små kerner, mens sidstener meget mere effektiv til større kerner.
inputbillederne og kernerne skal være lister eller numpy
arrays med enten 1,2 eller 3 dimensioner (og antallet af dimensioner skal være det samme for billedet og kernen). Resultatet er et numpy
array med samme dimensioner somindgangsbilledet. Konvolutionen udføres altid som flydende punkt.
funktionen convolve()
tager et alternativt boundary=
argument, der beskriver, hvordan du udfører konvolutionen påkanten af arrayet. Værdierne for boundary
kan være:
-
None
: Indstil resultatværdierne til nul, hvor kernen strækker sig ud over kanten af arrayet (standard). -
'fill'
: Indstil værdier uden for arraygrænsen til en konstant. Hvis dettemulighed er angivet, skal konstanten angives ved hjælp af argumentetfill_value=
, som som standard er nul. -
'wrap'
: Antag, at grænserne er periodiske. -
'extend'
: Indstil værdier uden for arrayet til den nærmeste arrayværdi.
som standard er kernen ikke normaliseret. For at normalisere det før konvolution, brug:
>>> result = convolve(image, kernel, normalize_kernel=True)