当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy ndimage.generate_binary_structure用法及代码示例


本文简要介绍 python 语言中 scipy.ndimage.generate_binary_structure 的用法。

用法:

scipy.ndimage.generate_binary_structure(rank, connectivity)#

为二元形态学运算生成二元结构。

参数

rank int

将应用结构元素的数组的维数,由 np.ndim 返回。

connectivity int

连通性确定输出数组的哪些元素属于该结构,即被视为中心元素的邻居。从中心到连接平方距离的元素被认为是邻居。连通性的范围可以从 1(没有对角元素是邻居)到排名(所有元素都是邻居)。

返回

output 布尔数组

可用于二元形态学运算的结构元素,秩维度和所有维度都等于 3。

注意

generate_binary_structure 只能创建维度等于 3(即最小维度)的结构元素。对于较大的结构元素,例如,对于侵蚀大型对象,可以使用 iterate_structure ,或者使用 numpy 函数(例如 numpy.ones )直接创建自定义数组。

例子

>>> from scipy import ndimage
>>> import numpy as np
>>> struct = ndimage.generate_binary_structure(2, 1)
>>> struct
array([[False,  True, False],
       [ True,  True,  True],
       [False,  True, False]], dtype=bool)
>>> a = np.zeros((5,5))
>>> a[2, 2] = 1
>>> a
array([[ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.]])
>>> b = ndimage.binary_dilation(a, structure=struct).astype(a.dtype)
>>> b
array([[ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.,  0.],
       [ 0.,  1.,  1.,  1.,  0.],
       [ 0.,  0.,  1.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.]])
>>> ndimage.binary_dilation(b, structure=struct).astype(a.dtype)
array([[ 0.,  0.,  1.,  0.,  0.],
       [ 0.,  1.,  1.,  1.,  0.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 0.,  1.,  1.,  1.,  0.],
       [ 0.,  0.,  1.,  0.,  0.]])
>>> struct = ndimage.generate_binary_structure(2, 2)
>>> struct
array([[ True,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True]], dtype=bool)
>>> struct = ndimage.generate_binary_structure(3, 1)
>>> struct # no diagonal elements
array([[[False, False, False],
        [False,  True, False],
        [False, False, False]],
       [[False,  True, False],
        [ True,  True,  True],
        [False,  True, False]],
       [[False, False, False],
        [False,  True, False],
        [False, False, False]]], dtype=bool)

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.ndimage.generate_binary_structure。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。