+
    Ai                         ^ RI t^ RIHtHt ]! RRRR7      R 4       t]! RRRR7      R 4       t]! R	RRRR
7      R 4       tR tR# )    N)njitprangez(f8[:],)T)cachenogilc                     \        V 4      p\        ^V4       F-  pV^,
          p\        W,          W,          ^,           4      W&   K/  	  \        V^,
          RR4       F-  pV^,           p\        W,          W,          ^,           4      W&   K/  	  R# )   N)lenrangemin)dni1i2s   &   U/var/www/html/photoedit/myenv/lib/python3.14/site-packages/pymatting/util/distance.py_propagate_1d_first_passr      sr    AAAqk!VAE1519%  AE2r"!VAE1519% #    z(f8[:], i4[:], f8[:], f8[:])c                    \        V 4      pRp\        P                  ) p\        V4       F  pW,          pV\        P                  8X  d   K"  W,          p	WV&   V^ 8  d_   W,          p
RWV,          ,           W:,          ,
          W,          ,
          ,          Wz,
          ,          pWbV,          8  d   MV^,          pKe  V^,          pWqV&   WbV&   \        P                  W%^,           &   K  	  V^ 8  d   R# ^ p\        V4       F]  pW%^,           ,          V8  d   V^,          pK  W,          p
Wz,
          p\        P                  ! W,          W:,          ,           4      W&   K_  	  R# )r   g      ?Nr	   )r
   npinfr   sqrt)r   vzfnxksxd_yxfxvkdxs   &&&&        r   _propagate_1dr#      s   	QB
A	A2Yt266>[!1fBrEzAE)BG34?AQ4xFA	Q!!66a%/ 2 	1u	A2YAhlFATVwwrw' r   z(f8[:, :],))r   parallelr   c                    V P                   w  r\        V4       F  p\        V R V3,          4       K  	  \        P                  ! W3\        P
                  R7      p\        P                  ! W^,           34      p\        P                  ! W34      p\        V4       F)  p\        W,          WG,          WW,          Wg,          4       K+  	  R# ):NNN)dtypeN)shaper   r   r   zerosint32r#   )distancenyr   r   r   r   r   ys   &       r   _propagate_distancer-   =   s    ^^FBBZ !Q$0  	"*A
"1fA
"ABZhk14qt4 r   c                    V P                   \        P                  8w  d   V ^ 8g  p V P                  w  r\        P                  ! W3\        P
                  4      p\        P                  W0&   \        V4       V# )a  
For every non-zero value, compute the distance to the closest zero value.
Based on :cite:`felzenszwalb2012distance`.

Parameters
----------
mask: numpy.ndarray
    2D matrix of zero and nonzero values.

Returns
-------
distance: numpy.ndarray
    Distance to closest zero-valued pixel.

Example
-------
>>> from pymatting import *
>>> import numpy as np
>>> mask = np.random.rand(10, 20) < 0.9
>>> distance = distance_transform(mask)
)r&   r   bool_r'   r(   float64r   r-   )maskr+   r   r*   s   &   r   distance_transformr2   L   sV    . zzRXXqyZZFBxx"**-HVVHN!Or   )	numpyr   numbar   r   r   r#   r-   r2    r   r   <module>r6      sk      jD)& *& $D=(( >((V m4$d;5 <5 r   