scipy.ndimage.

generic_filter1d#

scipy.ndimage.generic_filter1d(input, function, filter_size, axis=-1, output=None, mode='reflect', cval=0.0, origin=0, extra_arguments=(), extra_keywords=None)[Quelle]#

Berechnet einen 1D-Filter entlang der angegebenen Achse.

generic_filter1d iteriert über die Zeilen des Arrays und ruft die gegebene Funktion für jede Zeile auf. Die Argumente der Zeile sind die Eingabezeile und die Ausgabezeile. Die Eingabe- und Ausgabezeilen sind 1D-Double-Arrays. Die Eingabezeile wird entsprechend der Filtergröße und dem Ursprung erweitert. Die Ausgabezeile muss vor Ort mit dem Ergebnis modifiziert werden.

Parameter:
inputarray_like

Das Eingabearray.

function{callable, scipy.LowLevelCallable}

Funktion, die entlang der gegebenen Achse angewendet werden soll.

filter_sizescalar

Länge des Filters.

axisint, optional

Die Achse von input, entlang der berechnet werden soll. Standard ist -1.

outputarray oder dtype, optional

Das Array, in das die Ausgabe platziert werden soll, oder der Datentyp des zurückgegebenen Arrays. Standardmäßig wird ein Array mit demselben Datentyp wie input erstellt.

mode{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’}, optional

Der Parameter mode bestimmt, wie das Eingabearray über seine Grenzen hinaus erweitert wird. Standard ist ‘reflect’. Das Verhalten für jeden gültigen Wert ist wie folgt:

‘reflect’ (d c b a | a b c d | d c b a)

Die Eingabe wird erweitert, indem über den Rand des letzten Pixels gespiegelt wird. Dieser Modus wird auch manchmal als halb-Sample-symmetrisch bezeichnet.

‘constant’ (k k k k | a b c d | k k k k)

Die Eingabe wird erweitert, indem alle Werte außerhalb des Rands mit demselben konstanten Wert gefüllt werden, der durch den Parameter cval definiert ist.

‘nearest’ (a a a a | a b c d | d d d d)

Die Eingabe wird erweitert, indem das letzte Pixel wiederholt wird.

‘mirror’ (d c b | a b c d | c b a)

Die Eingabe wird erweitert, indem über die Mitte des letzten Pixels gespiegelt wird. Dieser Modus wird auch manchmal als ganz-Sample-symmetrisch bezeichnet.

‘wrap’ (a b c d | a b c d | a b c d)

Die Eingabe wird erweitert, indem zum gegenüberliegenden Rand umgebrochen wird.

Zur Konsistenz mit den Interpolationsfunktionen können auch die folgenden Modusnamen verwendet werden:

‘grid-mirror’

Dies ist ein Synonym für ‘reflect’.

‘grid-constant’

Dies ist ein Synonym für ‘constant’.

‘grid-wrap’

Dies ist ein Synonym für ‘wrap’.

cvalskalar, optional

Wert, mit dem die Ränder der Eingabe gefüllt werden, wenn mode ‘constant’ ist. Standard ist 0.0.

originGanzzahl, optional

Steuert die Platzierung des Filters auf den Pixeln des Eingabearrays. Ein Wert von 0 (Standard) zentriert den Filter über dem Pixel, wobei positive Werte den Filter nach links und negative nach rechts verschieben.

extra_argumentssequence, optional

Sequenz zusätzlicher Positionsargumente, die an die übergebene Funktion übergeben werden.

extra_keywordsdict, optional

Dict mit zusätzlichen Schlüsselwortargumenten, die an die übergebene Funktion übergeben werden.

Rückgabe:
generic_filter1dndarray

Gefiltertes Array. Hat die gleiche Form wie input.

Hinweise

Diese Funktion akzeptiert auch Low-Level-Callback-Funktionen mit einer der folgenden Signaturen, die in scipy.LowLevelCallable verpackt sind.

int function(double *input_line, npy_intp input_length,
             double *output_line, npy_intp output_length,
             void *user_data)
int function(double *input_line, intptr_t input_length,
             double *output_line, intptr_t output_length,
             void *user_data)

Die aufrufende Funktion iteriert über die Zeilen der Eingabe- und Ausgabearrays und ruft die Callback-Funktion für jede Zeile auf. Die aktuelle Zeile wird gemäß den vom aufrufenden Funktion festgelegten Randbedingungen erweitert und das Ergebnis in das übergebene Array kopiert, das durch input_line übergeben wird. Die Länge der Eingabezeile (nach der Erweiterung) wird über input_length übergeben. Die Callback-Funktion sollte den Filter anwenden und das Ergebnis in das übergebene Array speichern, das durch output_line übergeben wird. Die Länge der Ausgabezeile wird über output_length übergeben. user_data ist der an scipy.LowLevelCallable übergebene Datenzeiger.

Die Callback-Funktion muss einen ganzzahligen Fehlerstatus zurückgeben, der Null ist, wenn etwas schiefgelaufen ist, und eins sonst. Wenn ein Fehler auftritt, sollten Sie normalerweise den Python-Fehlerstatus mit einer aussagekräftigen Meldung setzen, bevor Sie zurückkehren, andernfalls wird eine Standardfehlermeldung vom aufrufenden Funktion gesetzt.

Zusätzlich werden einige andere Low-Level-Funktionszeigerspezifikationen akzeptiert, diese sind jedoch nur aus Kompatibilitätsgründen vorhanden und sollten nicht in neuem Code verwendet werden.