91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Python實現統計圖像連通域

發布時間:2023-04-25 17:20:28 來源:億速云 閱讀:115 作者:iii 欄目:開發技術

本篇內容介紹了“怎么使用Python實現統計圖像連通域”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

數組統計函數

ndimage提供一系列函數,可以計算標注后的數組的相關特征,比如最值、均值、均方根等。

下列函數,如果未作其他說明,那么就有3個參數,分別是(input, labels=None, index=None),其中input為輸入數組;labels為input的標簽,形狀和input相同;index為整數或者整數數列,為用于計算的label。

函數物理量函數物理量
mean平均值center_of_mass質心
maximum最大值maximum_position最大值位置
minimum最小值minimum_position最小值位置
median中位數extrema最大值、最小值,及其位置
sum_labels求和

variance方差standard_deviation標準差

示例如下

import numpy as np
import scipy.ndimage as sn

x = np.random.randint(10, size=(3,3))
print(x)
'''
[[0 3 5]
 [9 3 1]
 [1 5 7]]
'''
sn.center_of_mass(x)    # (1.1470588235294117, 1.088235294117647)
sn.extrema(x)           # (0, 9, (0, 0), (1, 0))

連通域標記

通過label函數,可以對數組中的連通區域進行標注,效果如下

from scipy.ndimage import label
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]])
labels, N = label(a)
print(labels)
'''
[[0 0 1 1 0 0]
 [0 0 0 1 0 0]
 [2 2 0 0 3 0]
 [0 0 0 4 0 0]]
'''
print(N)    4

在label函數中,還有一個用于規范何為“連通”的參數,即structure,其數據類型為二值數組,其維度與輸入的input相同。

在上面的示例中,連通域1,3,4盡管沒有上下左右的聯系,但在對角線上是有交集的,通過調整structure參數,可以提供一種將這三個區域連在一起的連通域方案。

stru = np.ones([3,3])
bLab, bN = label(a, stru)
print(bLab)
‘'‘
[[0 0 1 1 0 0]
 [0 0 0 1 0 0]
 [2 2 0 0 1 0]
 [0 0 0 1 0 0]]
'‘'

可見,這次只選出了兩組連通域。

連通域統計

前面提到的所有統計函數,形參都有三個,分別是input, labels, index,其中input為輸入數組,labels為將要處理的連通域,index為準備處理的連通域序號。

np.random.seed(42)
test = np.random.rand(5,5)
test[test<0.8] = 0
labels, N = sn.label(test)
print(N)        # 2
print(labels)    # 
‘'‘
[[0 1 0 0 0]
 [0 0 2 0 0]
 [0 2 2 0 0]
 [0 0 0 0 0]
 [0 0 0 0 0]]
'‘'
print(test)
‘'‘
[[0.         0.95071431 0.         0.         0.        ]
 [0.         0.         0.86617615 0.         0.        ]
 [0.         0.96990985 0.83244264 0.         0.        ]
 [0.         0.         0.         0.         0.        ]
 [0.         0.         0.         0.         0.        ]]
'‘'

接下來通過連通域統計函數,針對某個連通域進行計算

>>> sn.mean(test, labels, 1)
0.9507143064099162
>>> sn.mean(test, labels, 2)
0.8895095462457837
>>> sn.mean(test, labels, 0)
0.0

當index=1時,會找出labels中為1的位置,然后把test中這些位置的元素求平均。

“怎么使用Python實現統計圖像連通域”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奇台县| 青海省| 肃南| 江门市| 镇安县| 平阳县| 化州市| 皋兰县| 塔城市| 丹巴县| 通城县| 神农架林区| 福清市| 四平市| 嘉义县| 天门市| 洪洞县| 昌邑市| 富裕县| 宕昌县| 久治县| 凌源市| 凌云县| 佛山市| 垫江县| 万盛区| 天镇县| 望江县| 安福县| 景德镇市| 新余市| 泸州市| 郓城县| 上饶市| 鄂托克旗| 屯留县| 怀柔区| 紫金县| 惠安县| 宽甸| 田东县|