
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "auto_examples/segmentation/plot_expand_labels.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        Click :ref:`here <sphx_glr_download_auto_examples_segmentation_plot_expand_labels.py>`
        to download the full example code

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_auto_examples_segmentation_plot_expand_labels.py:


==========================================
Expand segmentation labels without overlap
==========================================

Given several connected components represented by a label image, these
connected components can be expanded into background regions using
:py:func:`skimage.segmentation.expand_labels`.
In contrast to :py:func:`skimage.morphology.dilation` this method will
not let connected components expand into neighboring connected components
with lower label number.

.. GENERATED FROM PYTHON SOURCE LINES 13-55



.. image-sg:: /auto_examples/segmentation/images/sphx_glr_plot_expand_labels_001.png
   :alt: Sobel+Watershed, Expanded labels
   :srcset: /auto_examples/segmentation/images/sphx_glr_plot_expand_labels_001.png
   :class: sphx-glr-single-img





.. code-block:: default

    import numpy as np
    import matplotlib.pyplot as plt

    from skimage.filters import sobel
    from skimage.measure import label
    from skimage.segmentation import watershed, expand_labels
    from skimage.color import label2rgb
    from skimage import data

    coins = data.coins()

    # Make segmentation using edge-detection and watershed.
    edges = sobel(coins)

    # Identify some background and foreground pixels from the intensity values.
    # These pixels are used as seeds for watershed.
    markers = np.zeros_like(coins)
    foreground, background = 1, 2
    markers[coins < 30.0] = background
    markers[coins > 150.0] = foreground

    ws = watershed(edges, markers)
    seg1 = label(ws == foreground)

    expanded = expand_labels(seg1, distance=10)

    # Show the segmentations.
    fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(9, 5),
                             sharex=True, sharey=True)

    color1 = label2rgb(seg1, image=coins, bg_label=0)
    axes[0].imshow(color1)
    axes[0].set_title('Sobel+Watershed')

    color2 = label2rgb(expanded, image=coins, bg_label=0)
    axes[1].imshow(color2)
    axes[1].set_title('Expanded labels')

    for a in axes:
        a.axis('off')
    fig.tight_layout()
    plt.show()


.. rst-class:: sphx-glr-timing

   **Total running time of the script:** ( 0 minutes  0.215 seconds)


.. _sphx_glr_download_auto_examples_segmentation_plot_expand_labels.py:


.. only :: html

 .. container:: sphx-glr-footer
    :class: sphx-glr-footer-example



  .. container:: sphx-glr-download sphx-glr-download-python

     :download:`Download Python source code: plot_expand_labels.py <plot_expand_labels.py>`



  .. container:: sphx-glr-download sphx-glr-download-jupyter

     :download:`Download Jupyter notebook: plot_expand_labels.ipynb <plot_expand_labels.ipynb>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
