skimage2.segmentation.morphological_chan_vese#
- skimage2.segmentation.morphological_chan_vese(image, num_iter, init_level_set='checkerboard', smoothing=1, lambda1=1, lambda2=1, iter_callback=<function <lambda>>)[source]#
Morphological Active Contours without Edges (MorphACWE)
Active contours without edges implemented with morphological operators. It can be used to segment objects in images and volumes without well defined borders. It is required that the inside of the object looks different on average than the outside (i.e., the inner area of the object should be darker or lighter than the outer area on average).
- Parameters:
- image(M, N) or (L, M, N) array
Grayscale image or volume to be segmented.
- num_iteruint
Number of num_iter to run
- init_level_setstr, (M, N) array, or (L, M, N) array
Initial level set. If an array is given, it will be binarized and used as the initial level set. If a string is given, it defines the method to generate a reasonable initial level set with the shape of the
image. Accepted values are ‘checkerboard’ and ‘disk’. See the documentation ofcheckerboard_level_setanddisk_level_setrespectively for details about how these level sets are created.- smoothinguint, optional
Number of times the smoothing operator is applied per iteration. Reasonable values are around 1-4. Larger values lead to smoother segmentations.
- lambda1float, optional
Weight parameter for the outer region. If
lambda1is larger thanlambda2, the outer region will contain a larger range of values than the inner region.- lambda2float, optional
Weight parameter for the inner region. If
lambda2is larger thanlambda1, the inner region will contain a larger range of values than the outer region.- iter_callbackfunction, optional
If given, this function is called once per iteration with the current level set as the only argument. This is useful for debugging or for plotting intermediate results during the evolution.
- Returns:
- out(M, N) or (L, M, N) array
Final segmentation (i.e., the final level set)
See also
Notes
This is a version of the Chan-Vese algorithm that uses morphological operators instead of solving a partial differential equation (PDE) for the evolution of the contour. The set of morphological operators used in this algorithm are proved to be infinitesimally equivalent to the Chan-Vese PDE (see [1]). However, morphological operators are do not suffer from the numerical stability issues typically found in PDEs (it is not necessary to find the right time step for the evolution), and are computationally faster.
The algorithm and its theoretical derivation are described in [1].
References
[1] (1,2)A Morphological Approach to Curvature-based Evolution of Curves and Surfaces, Pablo Márquez-Neila, Luis Baumela, Luis Álvarez. In IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 2014, DOI:10.1109/TPAMI.2013.106