當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。