本文簡要介紹 python 語言中 scipy.ndimage.label
的用法。
用法:
scipy.ndimage.label(input, structure=None, output=None)#
在數組中標注特征。
- input: array_like
要標記的類似數組的對象。輸入中的任何非零值都被視為特征,零值被視為背景。
- structure: 數組,可選
定義特征連接的結構元素。結構必須是中心對稱的(見注釋)。如果沒有提供結構元素,則會自動生成一個,其平方連通性等於 1。也就是說,對於二維輸入數組,默認的結構元素是:
[[0,1,0], [1,1,1], [0,1,0]]
- output: (無,數據類型,數組),可選
如果輸出是數據類型,則它指定生成的標記要素數組的類型。如果輸出是類似數組的對象,則輸出將使用此函數中的標記特征進行更新。該函數可以通過傳遞輸出=輸入就地操作。請注意,輸出必須能夠存儲最大的標簽,否則此函數將引發異常。
- label: ndarray 或 int
一個整數 ndarray,其中輸入中的每個唯一特征在返回的數組中都有一個唯一標簽。
- num_features: int
找到了多少對象。
如果輸出為無,則此函數返回 (labeled_array, num_features) 的元組。
如果輸出是 ndarray,那麽它將使用 labeled_array 中的值進行更新,並且此函數將僅返回 num_features。
參數 ::
返回 ::
注意:
中心對稱矩陣是關於中心對稱的矩陣。有關詳細信息,請參閱 [1]。
結構矩陣必須是中心對稱的,以保證雙向連接。例如,如果結構矩陣不是中心對稱的並且定義為:
[[0,1,0], [1,1,0], [0,0,0]]
輸入是:
[[1,2], [0,3]]
那麽結構矩陣將指示輸入中的條目 2 連接到 1,但 1 未連接到 2。
參考:
[1]James R. Weaver,“中心對稱 (cross-symmetric) 矩陣、它們的基本屬性、特征值和特征向量。”美國數學月刊 92.10 (1985): 711-717。
例子:
創建具有一些特征的圖像,然後使用默認 (cross-shaped) 結構元素對其進行標記:
>>> from scipy.ndimage import label, generate_binary_structure >>> import numpy as np >>> a = np.array([[0,0,1,1,0,0], ... [0,0,0,1,0,0], ... [1,1,0,0,1,0], ... [0,0,0,1,0,0]]) >>> labeled_array, num_features = label(a)
4 個特征中的每一個都用不同的整數標記:
>>> num_features 4 >>> labeled_array array([[0, 0, 1, 1, 0, 0], [0, 0, 0, 1, 0, 0], [2, 2, 0, 0, 3, 0], [0, 0, 0, 4, 0, 0]])
生成一個結構元素,該元素將考慮連接的特征,即使它們對角接觸:
>>> s = generate_binary_structure(2,2)
或者,
>>> s = [[1,1,1], ... [1,1,1], ... [1,1,1]]
使用新的結構元素標記圖像:
>>> labeled_array, num_features = label(a, structure=s)
顯示 2 個標記的特征(請注意,上麵的特征 1、3 和 4 現在被視為單個特征):
>>> num_features 2 >>> labeled_array array([[0, 0, 1, 1, 0, 0], [0, 0, 0, 1, 0, 0], [2, 2, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0]])
相關用法
- Python SciPy ndimage.labeled_comprehension用法及代碼示例
- Python SciPy ndimage.laplace用法及代碼示例
- Python SciPy ndimage.correlate用法及代碼示例
- Python SciPy ndimage.morphological_gradient用法及代碼示例
- Python SciPy ndimage.variance用法及代碼示例
- Python SciPy ndimage.correlate1d用法及代碼示例
- Python SciPy ndimage.binary_dilation用法及代碼示例
- Python SciPy ndimage.distance_transform_bf用法及代碼示例
- Python SciPy ndimage.find_objects用法及代碼示例
- Python SciPy ndimage.maximum_filter1d用法及代碼示例
- Python SciPy ndimage.iterate_structure用法及代碼示例
- Python SciPy ndimage.map_coordinates()用法及代碼示例
- Python SciPy ndimage.generic_laplace用法及代碼示例
- Python SciPy ndimage.generate_binary_structure用法及代碼示例
- Python SciPy ndimage.binary_opening用法及代碼示例
- Python SciPy ndimage.binary_fill_holes用法及代碼示例
- Python SciPy ndimage.maximum_filter用法及代碼示例
- Python SciPy ndimage.minimum_position用法及代碼示例
- Python SciPy ndimage.grey_erosion用法及代碼示例
- Python SciPy ndimage.spline_filter用法及代碼示例
- Python SciPy ndimage.shift用法及代碼示例
- Python SciPy ndimage.distance_transform_cdt用法及代碼示例
- Python SciPy ndimage.minimum用法及代碼示例
- Python SciPy ndimage.fourier_uniform用法及代碼示例
- Python SciPy ndimage.gaussian_laplace用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.ndimage.label。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。