find_objects#
- scipy.ndimage.find_objects(input, max_label=0)[Quelle]#
Objekte in einem gelabelten Array finden.
- Parameter:
- inputndarray von Integers
Array, das Objekte mit verschiedenen Labels enthält. Labels mit dem Wert 0 werden ignoriert.
- max_labelint, optional
Maximales Label, nach dem in input gesucht werden soll. Wenn max_label nicht angegeben ist, werden die Positionen aller Objekte zurückgegeben.
- Rückgabe:
- object_slicesliste von Tupeln
Eine Liste von Tupeln, wobei jedes Tupel N Slices enthält (wobei N die Dimension des Eingabearrays ist). Slices entsprechen dem minimalen Parallelepiped, das das Objekt enthält. Wenn eine Zahl fehlt, wird stattdessen None anstelle einer Slice zurückgegeben. Das Label
lentspricht dem Indexl-1in der zurückgegebenen Liste.
Siehe auch
Hinweise
Diese Funktion ist sehr nützlich, um ein interessantes Volumen innerhalb eines 3-D-Arrays zu isolieren, das nicht "durchgeschaut" werden kann.
Beispiele
>>> from scipy import ndimage >>> import numpy as np >>> a = np.zeros((6,6), dtype=int) >>> a[2:4, 2:4] = 1 >>> a[4, 4] = 1 >>> a[:2, :3] = 2 >>> a[0, 5] = 3 >>> a array([[2, 2, 2, 0, 0, 3], [2, 2, 2, 0, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0]]) >>> ndimage.find_objects(a) [(slice(2, 5, None), slice(2, 5, None)), (slice(0, 2, None), slice(0, 3, None)), (slice(0, 1, None), slice(5, 6, None))] >>> ndimage.find_objects(a, max_label=2) [(slice(2, 5, None), slice(2, 5, None)), (slice(0, 2, None), slice(0, 3, None))] >>> ndimage.find_objects(a == 1, max_label=2) [(slice(2, 5, None), slice(2, 5, None)), None]
>>> loc = ndimage.find_objects(a)[0] >>> a[loc] array([[1, 1, 0], [1, 1, 0], [0, 0, 1]])