用法:
skimage.morphology.local_maxima(image, footprint=None, connectivity=None, indices=False, allow_borders=True)
找到 n 維數組的局部最大值。
局部最大值被定義為具有相等灰度(高原)的連接像素集,嚴格大於鄰域中所有像素的灰度。
- image:ndarray
一個 n 維數組。
- footprint:ndarray,可選
用於確定每個評估像素的鄰域的足跡(結構元素)(
True
表示連接的像素)。它必須是一個布爾數組,並且具有與圖片.如果兩者都沒有腳印也不連通性給定,所有相鄰像素都被視為鄰域的一部分。- connectivity:int 可選
用於確定每個評估像素的鄰域的數字。與中心的平方距離小於或等於連通性的相鄰像素被視為鄰居。如果足跡不是無,則忽略。
- indices:布爾型,可選
如果為 True,則輸出將是一維數組的元組,表示每個維度中局部最大值的索引。如果為 False,則輸出將是一個與圖像具有相同形狀的布爾數組。
- allow_borders:布爾型,可選
如果為真,則接觸圖像邊界的高原是有效的最大值。
- maxima:ndarray 或元組[ndarray]
如果 index 為假,一個與形狀相同的布爾數組圖片與
True
表示局部最大值的位置(False
除此以外)。如果 index 是真的,一維數組的元組包含所有找到的最大值的坐標(索引)。
- selem:DEPRECATED
已棄用以支持足跡。
- UserWarning
如果allow_borders 為假並且給定圖像的任何維度都短於 3 個樣本,則最大值不存在並顯示警告。
參數:
返回:
其他參數:
警告:
注意:
此函數基於以下想法運行:
通過僅比較一個方向的像素,對圖像的最後一個維度進行第一次遍曆,並標記局部最大值的候選對象。如果像素在最後一維中沒有連接,則所有像素都被標記為候選。
對於每個候選人:
執行 flood-fill 以查找具有相同灰度值且屬於高原的所有連接像素。
考慮高原的連通鄰域:如果沒有邊界樣本具有更高的灰度級,則將高原標記為確定的局部最大值。
例子:
>>> from skimage.morphology import local_maxima >>> image = np.zeros((4, 7), dtype=int) >>> image[1:3, 1:3] = 1 >>> image[3, 0] = 1 >>> image[1:3, 4:6] = 2 >>> image[3, 6] = 3 >>> image array([[0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 2, 2, 0], [0, 1, 1, 0, 2, 2, 0], [1, 0, 0, 0, 0, 0, 3]])
通過比較所有相鄰像素(最大連通性)找到局部最大值:
>>> local_maxima(image) array([[False, False, False, False, False, False, False], [False, True, True, False, False, False, False], [False, True, True, False, False, False, False], [ True, False, False, False, False, False, True]]) >>> local_maxima(image, indices=True) (array([1, 1, 2, 2, 3, 3]), array([1, 2, 1, 2, 0, 6]))
在不與對角像素比較的情況下找到局部最大值(連通性 1):
>>> local_maxima(image, connectivity=1) array([[False, False, False, False, False, False, False], [False, True, True, False, True, True, False], [False, True, True, False, True, True, False], [ True, False, False, False, False, False, True]])
並排除與圖像邊接壤的最大值:
>>> local_maxima(image, connectivity=1, allow_borders=False) array([[False, False, False, False, False, False, False], [False, True, True, False, True, True, False], [False, True, True, False, True, True, False], [False, False, False, False, False, False, False]])
相關用法
- Python skimage.morphology.local_minima用法及代碼示例
- Python skimage.morphology.label用法及代碼示例
- Python skimage.morphology.h_minima用法及代碼示例
- Python skimage.morphology.dilation用法及代碼示例
- Python skimage.morphology.remove_small_holes用法及代碼示例
- Python skimage.morphology.flood_fill用法及代碼示例
- Python skimage.morphology.black_tophat用法及代碼示例
- Python skimage.morphology.h_maxima用法及代碼示例
- Python skimage.morphology.area_closing用法及代碼示例
- Python skimage.morphology.max_tree_local_maxima用法及代碼示例
- Python skimage.morphology.thin用法及代碼示例
- Python skimage.morphology.flood用法及代碼示例
- Python skimage.morphology.diameter_closing用法及代碼示例
- Python skimage.morphology.remove_small_objects用法及代碼示例
- Python skimage.morphology.reconstruction用法及代碼示例
- Python skimage.morphology.erosion用法及代碼示例
- Python skimage.morphology.diameter_opening用法及代碼示例
- Python skimage.morphology.max_tree用法及代碼示例
- Python skimage.morphology.medial_axis用法及代碼示例
- Python skimage.morphology.skeletonize用法及代碼示例
注:本文由純淨天空篩選整理自scikit-image.org大神的英文原創作品 skimage.morphology.local_maxima。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。