
    a6d[	                     &    d dl ZddlmZ 	 	 ddZdS )	    N   )gaussian   皙?      ?c                    t           j                            |          }t          | g|z            }t          j        |          }t          t          d|z            |z  d          }| |                    ||f          z                      t                    }	d|t          d |	D                       <   t          |d| z  |z  d          }t          j	        |dd|z
  z            }
t          j
        ||
k               S )aN  
    Generate synthetic binary image with several rounded blob-like objects.

    Parameters
    ----------
    length : int, optional
        Linear size of output image.
    blob_size_fraction : float, optional
        Typical linear size of blob, as a fraction of ``length``, should be
        smaller than 1.
    n_dim : int, optional
        Number of dimensions of output image.
    volume_fraction : float, default 0.5
        Fraction of image pixels covered by the blobs (where the output is 1).
        Should be in [0, 1].
    seed : {None, int, `numpy.random.Generator`}, optional
        If `seed` is None the `numpy.random.Generator` singleton is used.
        If `seed` is an int, a new ``Generator`` instance is used,
        seeded with `seed`.
        If `seed` is already a ``Generator`` instance then that instance is
        used.

    Returns
    -------
    blobs : ndarray of bools
        Output binary image

    Examples
    --------
    >>> from skimage import data
    >>> data.binary_blobs(length=5, blob_size_fraction=0.2)  # doctest: +SKIP
    array([[ True, False,  True,  True,  True],
           [ True,  True,  True, False,  True],
           [False,  True, False,  True,  True],
           [ True, False, False,  True,  True],
           [ True, False, False, False,  True]])
    >>> blobs = data.binary_blobs(length=256, blob_size_fraction=0.1)
    >>> # Finer structures
    >>> blobs = data.binary_blobs(length=256, blob_size_fraction=0.05)
    >>> # Blobs cover a smaller volume fraction of the image
    >>> blobs = data.binary_blobs(length=256, volume_fraction=0.3)

    g      ?   c              3      K   | ]}|V  d S )N ).0indicess     :lib/python3.11/site-packages/skimage/data/_binary_blobs.py	<genexpr>zbinary_blobs.<locals>.<genexpr>;   s"      --7w------    g      ?F)sigmapreserve_ranged   )nprandomdefault_rngtuplezerosmaxintastyper   
percentilelogical_not)lengthblob_size_fractionn_dimvolume_fractionseedrsshapemaskn_ptspoints	thresholds              r   binary_blobsr)      s    ` 
		t	$	$B6(U"##E8E??DB++,,5q99Eryy%00088==F12D--f---	-	-.Dv0B B#(* * *DdC1+>$?@@I>$*+++r   )r   r   r   r   N)numpyr   _shared.filtersr   r)   r   r   r   <module>r,      sI        & & & & & & <=+/9, 9, 9, 9, 9, 9,r   