用法:
skimage.segmentation.slic(image, n_segments=100, compactness=10.0, max_num_iter=10, sigma=0, spacing=None, multichannel=True, convert2lab=None, enforce_connectivity=True, min_size_factor=0.5, max_size_factor=3, slic_zero=False, start_label=1, mask=None, *, channel_axis=- 1)
使用顏色-(x,y,z) 空間中的k-means 聚類分割圖像。
- image:2D、3D 或 4D ndarray
輸入圖像,可以是 2D 或 3D,灰度或多通道(參見channel_axis 參數)。輸入圖像必須是NaN-free 或者必須屏蔽 NaN
- n_segments:int 可選
分割輸出圖像中的(近似)標簽數。
- compactness:浮點數,可選
平衡顏色接近度和空間接近度。較高的值賦予空間接近度更多的權重,使超像素形狀更加方形/立方體。在 SLICO 模式下,這是初始緊湊性。該參數很大程度上取決於圖像對比度和圖像中對象的形狀。我們建議在對數範圍內探索可能的值,例如 0.01、0.1、1、10、100,然後再圍繞選定的值進行優化。
- max_num_iter:int 可選
k-means 的最大迭代次數。
- sigma:浮點數或 array-like 個浮點數,可選
對圖像的每個維度進行預處理的高斯平滑核的寬度。在標量值的情況下,相同的 sigma 應用於每個維度。零表示沒有平滑。注意西格瑪如果它是標量並且提供了手動體素間距,則會自動縮放(請參閱注釋部分)。如果 sigma 是array-like,它的大小必須匹配
image
的空間維數。- spacing:array-like 個浮點數,可選
沿每個空間維度的體素間距。默認情況下,
slic
- multichannel:布爾型,可選
圖像的最後一個軸是否被解釋為多個通道或另一個空間維度。不推薦使用此參數:改為指定 channel_axis。
- convert2lab:布爾型,可選
在分割之前是否應將輸入轉換為 Lab 顏色空間。輸入圖像必須是RGB。強烈推薦。此選項默認為
True
當channel_axis` is not None *and* ``image.shape[-1] == 3
.- enforce_connectivity:布爾型,可選
生成的段是否連接
- min_size_factor:浮點數,可選
要刪除的最小段大小相對於假定段大小的比例
`depth*width*height/n_segments`
- max_size_factor:浮點數,可選
最大連接段大小的比例。在大多數情況下,值 3 有效。
- slic_zero:布爾型,可選
運行SLIC-zero,SLIC的零參數模式。 [2]
- start_label:int 可選
標簽的索引開始。應該是 0 或 1。
- mask:ndarray,可選
如果提供,則僅在掩碼為 True 的情況下計算超像素,並且種子點使用 k-means 聚類策略均勻分布在掩碼上。掩碼維數必須等於圖像空間維數。
- channel_axis:int 或無,可選
如果為 None,則假定圖像是灰度(單通道)圖像。否則,此參數指示數組的哪個軸對應於通道。
- labels:2D 或 3D 陣列
指示段標簽的整數掩碼。
- max_iter:DEPRECATED
已棄用以支持max_num_iter。
- multichannel:DEPRECATED
已棄用以支持channel_axis。
- ValueError
如果
convert2lab
設置為True
但最後一個數組維度的長度不是 3。- ValueError
如果
start_label
不是 0 或 1。
參數:
返回:
其他參數:
拋出:
注意:
- 如果西格瑪 > 0,圖像在分割之前使用高斯核進行平滑處理。
- 如果西格瑪是標量並且間距提供,內核寬度沿每個維度除以間距。例如,如果
sigma=1
和spacing=[5, 1, 1]
, 有效西格瑪是[0.2, 1, 1]
.這確保了各向異性圖像的合理平滑。 - 在處理之前,圖像被重新縮放到 [0, 1] 中。
- 默認情況下,形狀 (M, N, 3) 的圖像被解釋為 2D RGB 圖像。要將它們解釋為最後一維長度為 3 的 3D,請使用channel_axis=無.
- start_label引入處理問題[4].標簽索引默認從 1 開始。
參考:
- 1
Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Süsstrunk, SLIC Superpixels Compared to State-of-the-art Superpixel Methods, TPAMI, May 2012. DOI:10.1109/TPAMI.2012.120
- 2
https://www.epfl.ch/labs/ivrl/research/slic-superpixels/#SLICO
- 3
Irving, Benjamin. “maskSLIC: regional superpixel generation with application to local pathology characterisation in medical images.”, 2016, arXiv:1606.09518
- 4
例子:
>>> from skimage.segmentation import slic >>> from skimage.data import astronaut >>> img = astronaut() >>> segments = slic(img, n_segments=100, compactness=10)
增加緊湊性參數會產生更多方形區域:
>>> segments = slic(img, n_segments=100, compactness=20)
相關用法
- Python skimage.segmentation.active_contour用法及代碼示例
- Python skimage.segmentation.relabel_sequential用法及代碼示例
- Python skimage.segmentation.flood_fill用法及代碼示例
- Python skimage.segmentation.clear_border用法及代碼示例
- Python skimage.segmentation.felzenszwalb用法及代碼示例
- Python skimage.segmentation.watershed用法及代碼示例
- Python skimage.segmentation.expand_labels用法及代碼示例
- Python skimage.segmentation.find_boundaries用法及代碼示例
- Python skimage.segmentation.random_walker用法及代碼示例
- Python skimage.segmentation.flood用法及代碼示例
- Python skimage.segmentation.join_segmentations用法及代碼示例
- Python skimage.feature.graycomatrix用法及代碼示例
- Python skimage.color.lab2lch用法及代碼示例
- Python skimage.draw.random_shapes用法及代碼示例
- Python skimage.feature.blob_doh用法及代碼示例
- Python skimage.feature.blob_dog用法及代碼示例
- Python skimage.filters.unsharp_mask用法及代碼示例
- Python skimage.registration.optical_flow_tvl1用法及代碼示例
- Python skimage.filters.rank.noise_filter用法及代碼示例
- Python skimage.exposure.histogram用法及代碼示例
注:本文由純淨天空篩選整理自scikit-image.org大神的英文原創作品 skimage.segmentation.slic。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。