numpy 图片填充_numpy/python中的洪水填充分割图像
它本質上是執行一個連接的組件分析,并用一個整數標記所有單獨閉合的組件。但在如何指定連接時,您需要小心。有4-連通性和8-連通性,前者只使用北、南、東和西方向尋找連通區域,而8-連通性則使用所有8個方向(北、南、東、西、東北、東南、西北、西南)。您將使用connectivity選項,并為4-連通性指定1,為8-連通性指定2。在
但是,默認連接將是完全連接,因此對于2D,它將是2選項。我懷疑你會這樣。矩陣中任何為零的斑點都將被標記為零。下面是一個非常簡單的可復制示例:In [1]: from skimage.measure import label
In [2]: import numpy as np
In [3]: x = np.zeros((8,8))
In [4]: x[0:4,0:4] = 1
In [5]: x[6:8,6:8] = 1
In [6]: x
Out[6]:
array([[ 1., 1., 1., 1., 0., 0., 0., 0.],
[ 1., 1., 1., 1., 0., 0., 0., 0.],
[ 1., 1., 1., 1., 0., 0., 0., 0.],
[ 1., 1., 1., 1., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 1., 1.],
[ 0., 0., 0., 0., 0., 0., 1., 1.]])
In [7]: label(x)
Out[7]:
array([[1, 1, 1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 2, 2],
[0, 0, 0, 0, 0, 0, 2, 2]], dtype=int64)
我們可以看到在左上角和右下角有兩個獨立的島。一旦運行label函數,它將返回一個標簽矩陣,標識屬于彼此的像素區域。具有相同ID的像素表示屬于同一區域。在
為了向您展示連接性是如何發揮作用的,下面是另一個簡單的示例:
^{pr2}$
輸入在左上角有一個交叉模式,在右下角有一個單獨的非零值。如果我們使用4-連通性,右下角將被分類為不同的標簽,但是如果我們使用默認的連通性(完全),每個像素都將被歸類為同一個標簽。在
總結
以上是生活随笔為你收集整理的numpy 图片填充_numpy/python中的洪水填充分割图像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: earcharts tree 节点间隔_
- 下一篇: n3k配置vpc是否还需要配置hsrp_