用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。