przegląd¶
dostępne są dwie funkcje splotu. Są importowane jako:
>>> from astropy.convolution import convolve, convolve_fft
i są używane zarówno jako:
>>> result = convolve(image, kernel) >>> result = convolve_fft(image, kernel)
convolve()
jest zaimplementowany jako algorytm splotu bezpośredniego, podczas gdyconvolve_fft()
używa Fast FourierTransform (FFT). Tak więc pierwszy jest lepszy dla małych jąder, podczas gdy drugi jest znacznie bardziej wydajny dla większych jąder.
obrazy wejściowe i jądra powinny być listami lub tablicami numpy
o wymiarach 1,2 lub 3 (a liczba wymiarów powinna być taka sama dla obrazu i jądra). Rezultatem jest tablica numpy
o takich samych wymiarach jak obraz wejściowy. Splot jest zawsze wykonywany jako zmiennoprzecinkowy.
funkcja convolve()
przyjmuje opcjonalny argument boundary=
opisujący sposób wykonania splotu na krawędzi tablicy. Wartości dla boundary
mogą być:
-
None
: ustaw wartość wyniku na zero, gdy jądro wykracza poza pole tablicy (domyślnie). -
'fill'
: ustawia wartości poza granicami tablicy na stałą. Jeśli ta opcja jest określona, stała powinna być określona za pomocą argumentufill_value=
, który domyślnie wynosi zero. -
'wrap'
: Załóżmy, że granice są okresowe. -
'extend'
: ustaw wartości poza tablicą na najbliższą wartość tablicy.
domyślnie jądro nie jest znormalizowane. Aby znormalizować go przed splotem, należy użyć:
>>> result = convolve(image, kernel, normalize_kernel=True)