slic
-
skimage.segmentation.slic(image, n_segments=100, compactness=10.0, max_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)
[source] -
Segments image using k-means clustering in Color-(x,y,z) space.
Parameters: image : 2D, 3D or 4D ndarray
Input image, which can be 2D or 3D, and grayscale or multichannel (see
multichannel
parameter).n_segments : int, optional
The (approximate) number of labels in the segmented output image.
compactness : float, optional
Balances color proximity and space proximity. Higher values give more weight to space proximity, making superpixel shapes more square/cubic. In SLICO mode, this is the initial compactness. This parameter depends strongly on image contrast and on the shapes of objects in the image. We recommend exploring possible values on a log scale, e.g., 0.01, 0.1, 1, 10, 100, before refining around a chosen value.
max_iter : int, optional
Maximum number of iterations of k-means.
sigma : float or (3,) array-like of floats, optional
Width of Gaussian smoothing kernel for pre-processing for each dimension of the image. The same sigma is applied to each dimension in case of a scalar value. Zero means no smoothing. Note, that
sigma
is automatically scaled if it is scalar and a manual voxel spacing is provided (see Notes section).spacing : (3,) array-like of floats, optional
The voxel spacing along each image dimension. By default,
slic
assumes uniform spacing (same voxel resolution along z, y and x). This parameter controls the weights of the distances along z, y, and x during k-means clustering.multichannel : bool, optional
Whether the last axis of the image is to be interpreted as multiple channels or another spatial dimension.
convert2lab : bool, optional
Whether the input should be converted to Lab colorspace prior to segmentation. The input image must be RGB. Highly recommended. This option defaults to
True
whenmultichannel=True
andimage.shape[-1] == 3
.enforce_connectivity: bool, optional
Whether the generated segments are connected or not
min_size_factor: float, optional
Proportion of the minimum segment size to be removed with respect to the supposed segment size
`depth*width*height/n_segments`
max_size_factor: float, optional
Proportion of the maximum connected segment size. A value of 3 works in most of the cases.
slic_zero: bool, optional
Run SLIC-zero, the zero-parameter mode of SLIC. [R351]
Returns: labels : 2D or 3D array
Integer mask indicating segment labels.
Raises: ValueError
If
convert2lab
is set toTrue
but the last array dimension is not of length 3.Notes
- If
sigma > 0
, the image is smoothed using a Gaussian kernel prior to segmentation. - If
sigma
is scalar andspacing
is provided, the kernel width is divided along each dimension by the spacing. For example, ifsigma=1
andspacing=[5, 1, 1]
, the effectivesigma
is[0.2, 1, 1]
. This ensures sensible smoothing for anisotropic images. - The image is rescaled to be in [0, 1] prior to processing.
- Images of shape (M, N, 3) are interpreted as 2D RGB images by default. To interpret them as 3D with the last dimension having length 3, use
multichannel=False
.
References
[R350] 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. [R351] (1, 2) http://ivrg.epfl.ch/research/superpixels#SLICO Examples
>>> from skimage.segmentation import slic >>> from skimage.data import astronaut >>> img = astronaut() >>> segments = slic(img, n_segments=100, compactness=10)
Increasing the compactness parameter yields more square regions:
>>> segments = slic(img, n_segments=100, compactness=20)
- If
Please login to continue.