scipy.ndimage.
find_objects#
- scipy.ndimage.find_objects(input, max_label=0)[源代码]#
在标记数组中查找对象。
- 参数:
- input整数类型的 ndarray
包含由不同标签定义的对象数组。值为 0 的标签将被忽略。
- max_labelint,可选
要在 input 中搜索的最大标签。 如果未给定 max_label,则返回所有对象的位置。
- 返回:
- object_slices元组列表
一个元组列表,每个元组包含 N 个切片(N 为输入数组的维度)。 切片对应于包含该对象的最小平行六面体。 如果缺少数字,则返回 None 而不是切片。标签
l
对应于返回列表中的索引l-1
。
另请参阅
注释
此函数对于隔离 3D 数组内部的感兴趣的体积非常有用,而该体积无法“透视”。
示例
>>> 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]])