binary_hit_or_miss#
- scipy.ndimage.binary_hit_or_miss(input, structure1=None, structure2=None, output=None, origin1=0, origin2=None, *, axes=None)[Quellcode]#
Mehrdimensionale binäre Hit-or-Miss-Transformation.
Die Hit-or-Miss-Transformation findet die Positionen eines gegebenen Musters innerhalb des Eingabebildes.
- Parameter:
- inputarray_like (wird zu booleans konvertiert)
Binäres Bild, in dem ein Muster erkannt werden soll.
- structure1array_like (wird zu booleans konvertiert), optional
Teil des Strukturierungselements, das an den Vordergrund (nicht-null Elemente) von input angepasst werden soll. Wenn kein Wert angegeben ist, wird eine Struktur mit quadratischer Konnektivität 1 gewählt.
- structure2array_like (wird zu booleans konvertiert), optional
Zweiter Teil des Strukturierungselements, der den Vordergrund vollständig verfehlen muss. Wenn kein Wert angegeben ist, wird die Komplementärdarstellung von structure1 genommen.
- outputndarray, optional
Array mit derselben Form wie input, in das die Ausgabe geschrieben wird. Standardmäßig wird ein neues Array erstellt.
- origin1int oder Tupel von ints, optional
Position des ersten Teils des Strukturierungselements structure1, standardmäßig 0 für eine zentrierte Struktur.
- origin2int oder Tupel von ints, optional
Position des zweiten Teils des Strukturierungselements structure2, standardmäßig 0 für eine zentrierte Struktur. Wenn für origin1 ein Wert angegeben wird und nicht für origin2, dann wird origin2 auf origin1 gesetzt.
- axestuple von int oder None
Die Achsen, über die der Filter angewendet wird. Wenn None, wird input über alle Achsen gefiltert. Wenn origin1 oder origin2 Tupel angegeben sind, muss ihre Länge der Anzahl der Achsen entsprechen.
- Rückgabe:
- binary_hit_or_missndarray
Hit-or-Miss-Transformation von input mit dem gegebenen Strukturierungselement (structure1, structure2).
Siehe auch
Referenzen
Beispiele
>>> from scipy import ndimage >>> import numpy as np >>> a = np.zeros((7,7), dtype=int) >>> a[1, 1] = 1; a[2:4, 2:4] = 1; a[4:6, 4:6] = 1 >>> a array([[0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> structure1 = np.array([[1, 0, 0], [0, 1, 1], [0, 1, 1]]) >>> structure1 array([[1, 0, 0], [0, 1, 1], [0, 1, 1]]) >>> # Find the matches of structure1 in the array a >>> ndimage.binary_hit_or_miss(a, structure1=structure1).astype(int) array([[0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> # Change the origin of the filter >>> # origin1=1 is equivalent to origin1=(1,1) here >>> ndimage.binary_hit_or_miss(a, structure1=structure1,\ ... origin1=1).astype(int) array([[0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0]])