Přehled¶
Dvě konvoluční funkce jsou k dispozici. Jsou importovány jako:
>>> from astropy.convolution import convolve, convolve_fft
a jsou oba používány jako:
>>> result = convolve(image, kernel) >>> result = convolve_fft(image, kernel)
convolve()
je implementován jako adirect konvoluce algoritmus, zatímcoconvolve_fft()
používá Rychlý FourierTransform (FFT). První z nich je tedy lepší pro malé jádra, zatímco druhéje mnohem účinnější pro větší jádra.
vstupní obrázky a jádra by měly být seznamy nebo numpy
pole se buď 1,2 nebo 3 rozměry (a počet rozměry by měly být stejné pro theimage a jádra). Výsledkem je pole numpy
se stejnými rozměry jako vstupní obraz. Konvoluce se vždy provádí jako plovoucí desetinná čárka.
funkce convolve()
má anotační boundary=
argument popisující, jak provést konvoluci na okraji pole. Hodnoty pro boundary
mohou být:
-
None
: nastavte hodnoty výsledku na nulu, kde jádro přesahuje okraj pole (Výchozí). -
'fill'
: nastavte hodnoty mimo hranici pole na konstantu. Pokud je tato volba zadána, konstanta by měla být zadána pomocí argumentufill_value=
, který je ve výchozím nastavení nulový. -
'wrap'
: předpokládejme, že hranice jsou periodické. -
'extend'
: nastavte hodnoty mimo pole na nejbližší hodnotu pole.
ve výchozím nastavení není jádro normalizováno. Chcete-li jej normalizovat před konvolucí, použijte:
>>> result = convolve(image, kernel, normalize_kernel=True)