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)