scipy.ndimage.

find_objects#

scipy.ndimage.find_objects(input, max_label=0)[原始碼]#

在標記陣列中尋找物件。

參數:
input整數的 ndarray

包含由不同標籤定義的物件的陣列。標籤值為 0 的物件將被忽略。

max_label整數,選用

要在 input 中搜尋的最大標籤。如果未給定 max_label,則會傳回所有物件的位置。

回傳:
object_slices元組列表

一個元組列表,每個元組包含 N 個切片(N 為輸入陣列的維度)。切片對應於包含物件的最小平行六面體。如果缺少數字,則會傳回 None 而不是切片。標籤 l 對應於回傳列表中的索引 l-1

註解

此函數對於隔離 3-D 陣列內部無法「看穿」的感興趣體積非常有用。

範例

>>> 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]])