correlate#
- scipy.ndimage.correlate(input, weights, output=None, mode='reflect', cval=0.0, origin=0, *, axes=None)[Quelle]#
Mehrdimensionale Korrelation.
Das Array wird mit dem gegebenen Kernel korreliert.
- Parameter:
- inputarray_like
Das Eingabearray.
- weightsndarray
Array von Gewichten, gleiche Anzahl von Dimensionen wie input
- 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.
- originint oder Sequenz, optional
Steuert die Platzierung des Filters auf den Pixeln des Eingangsarrays. Ein Wert von 0 (Standard) zentriert den Filter über dem Pixel, wobei positive Werte den Filter nach links und negative Werte nach rechts verschieben. Durch Übergabe einer Sequenz von Ursprüngen mit der Länge, die der Anzahl der Dimensionen des Eingangsarrays entspricht, können entlang jeder Achse unterschiedliche Verschiebungen angegeben werden.
- axesTupel von int oder None, optional
Wenn None, wird input entlang aller Achsen gefiltert. Andernfalls wird input entlang der angegebenen Achsen gefiltert. Wenn axes angegeben ist, müssen Tupel, die für mode oder origin verwendet werden, die Länge von axes haben. Der i-te Eintrag in einem dieser Tupel entspricht dem i-ten Eintrag in axes.
- Rückgabe:
- resultndarray
Das Ergebnis der Korrelation von input mit weights.
Siehe auch
convolveEin Bild mit einem Kernel konvolvieren.
Beispiele
Korrelation ist der Prozess, eine Filtermaske, oft als Kernel bezeichnet, über das Bild zu bewegen und die Summe der Produkte an jeder Position zu berechnen.
>>> from scipy.ndimage import correlate >>> import numpy as np >>> input_img = np.arange(25).reshape(5,5) >>> print(input_img) [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14] [15 16 17 18 19] [20 21 22 23 24]]
Definieren Sie einen Kernel (Gewichte) für die Korrelation. In diesem Beispiel ist es für die Summe des Zentrums und der oberen, unteren, linken und rechten Nachbarelemente.
>>> weights = [[0, 1, 0], ... [1, 1, 1], ... [0, 1, 0]]
Wir können ein Korrelationsergebnis berechnen: Zum Beispiel ist das Element
[2,2]7 + 11 + 12 + 13 + 17 = 60.>>> correlate(input_img, weights) array([[ 6, 10, 15, 20, 24], [ 26, 30, 35, 40, 44], [ 51, 55, 60, 65, 69], [ 76, 80, 85, 90, 94], [ 96, 100, 105, 110, 114]])