U
    ?h9                     @   s   d dl ZdgZdd ZdS )    Nlabel_pointsc                 C   s|   | j d t|krtdt| dk r0tdttt| jt	dd}tj
|tjd}td| j d d ||< |S )a  Assign unique integer labels to coordinates on an image mask

    Parameters
    ----------
    coords: ndarray
        An array of N coordinates with dimension D
    output_shape: tuple
        The shape of the mask on which `coords` are labelled

    Returns
    -------
    labels: ndarray
        A mask of zeroes containing unique integer labels at the `coords`

    Examples
    --------
    >>> import numpy as np
    >>> from skimage.util._label import label_points
    >>> coords = np.array([[0, 1], [2, 2]])
    >>> output_shape = (5, 5)
    >>> mask = label_points(coords, output_shape)
    >>> mask
    array([[0, 1, 0, 0, 0],
           [0, 0, 0, 0, 0],
           [0, 0, 2, 0, 0],
           [0, 0, 0, 0, 0],
           [0, 0, 0, 0, 0]], dtype=uint64)

    Notes
    -----
    - The labels are assigned to coordinates that are converted to
      integer and considered to start from 0.
    - Coordinates that are out of range of the mask raise an IndexError.
    - Negative coordinates raise a ValueError
       z6Dimensionality of points should match the output shaper   z/Coordinates should be positive and start from 0F)copy)Zdtype)shapelen
ValueErrornpanytupleZ	transposeroundZastypeintZzerosZuint64Zarange)ZcoordsZoutput_shapeZ
np_indiceslabels r   E/var/www/html/venv/lib/python3.8/site-packages/skimage/util/_label.pyr      s    $)numpyr   __all__r   r   r   r   r   <module>   s   