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)