本文简要介绍 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。