Übersicht¶
Es werden zwei Faltungsfunktionen bereitgestellt. Sie werden importiert als:
>>> from astropy.convolution import convolve, convolve_fft
beide werden als:
>>> result = convolve(image, kernel) >>> result = convolve_fft(image, kernel)
convolve()
ist als direkter Faltungsalgorithmus implementiert, währendconvolve_fft()
eine schnelle FourierTransform (FFT) verwendet. Ersteres ist also besser für kleine Kerne, während letzteres für größere Kerne viel effizienter ist.
Die Eingabebilder und Kernel sollten Listen oder numpy
Arrays mit entweder 1,2 oder 3 Dimensionen sein (und die Anzahl der Dimensionen sollte für das Bild und den Kernel gleich sein). Das Ergebnis ist ein numpy
Array mit den gleichen Abmessungen wie das Eingabebild. Die Faltung erfolgt immer als Gleitkommawert.
Die convolve()
-Funktion verwendet ein optionales boundary=
-Argument, das beschreibt, wie die Faltung am Rand des Arrays ausgeführt wird. Die Werte für boundary
können:
-
None
: setzen Sie die Ergebniswerte auf Null, wenn der Kernel über den Rand des Arrays hinausragt (Standard). -
'fill'
: setzen Sie Werte außerhalb der Array-Grenze auf eine Konstante. Wenn thisoption angegeben ist, sollte die Konstante mit dem Argumentfill_value=
angegeben werden, das standardmäßig Null ist. -
'wrap'
: angenommen, die Grenzen sind periodisch. -
'extend'
: setzen Sie Werte außerhalb des Arrays auf den nächsten Array-Wert.
Standardmäßig ist der Kernel nicht normalisiert. Um es vor der Faltung zu normalisieren,verwenden Sie:
>>> result = convolve(image, kernel, normalize_kernel=True)