
    9iP                     x   S r SSKrSSKrSSKrSSKrSSKJr  SSK	r
SSKJr  SSKJr  SSK	Jr  SSKJr  S	r\R&                  " / S
Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S
Q/ S
Q/5      rS r " S S\R,                  5      rS rS rS rS rS rS r\R<                  R?                  S\R@                  \RB                  \RD                  \RF                  \RH                  \RJ                  \RL                  \RN                  /5      S 5       r(S r)S  r*S! r+S" r,S# r-g)$z0test_watershed.py - tests the watershed function    N)ndimage)gaussian)peak_local_max)label   )	watershedg-q=)   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   )r	   r	   r	   r	   r	      r
   r
   r
   r
   r
   r	   r	   r	   r	   r	   )r	   r	   r	   r
   r
         r   r   r   r   r
   r
   r	   r	   r	   )r	   r	   r
   r   r      o   g   r   r   r   r   r   r
   r	   r	   )r	   r	   r
   r   r   ^   H   4   r   r   r   r   r   r
   r	   r	   )r	   r	   r
   r   r   r   '      r   r   r   r   r   r
   r	   r	   )r	   r	   r
   r   r   r   r   r   r   r   r   r   r   r
   r	   r	   )r	   r	   r	   r
   r   r   r   r   r   r   r   r   r
   r	   r	   r	   )r	   r	   r	   r	   r
   r   r   r   r   r   r   r
   r	   r	   r	   r	   )r	   r	   r	   r	   r	   r
   r   r   r   r   r
   r	   r	   r	   r	   r	   c                 H   [        U [        R                  5      (       d  [        R                  " U 5      n [        U[        R                  5      (       d  [        R                  " U5      nSU R                  ;   a  SUR                  ;   a  gSXS:H  '   U R
                  [        R                  [        R                  4;   d.  UR
                  [        R                  [        R                  4;   a  [        R                  " U [        R                  5      n [        R                  " U[        R                  5      nU R                  UR                  -
  S-  R                  5       U R                  UR                  -
  S-  R                  5       -   nO[        R                  " U 5      n U R                  [        R                  5      n [        R                  " U5      nUR                  [        R                  5      nX-
  S-  R                  5       n[        R                  " U5      $ )Nr   g        r   )
isinstancenpndarrayasarrayshapedtype	complex64
complex128realsumimagastypefloat64mathsqrt)abts      i/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/segmentation/tests/test_watershed.pydiffr)   +   s`   a$$JJqMa$$JJqM	QWW1<A1fIww2<<//177

? 4 JJq"--(JJq"--(ffqvvo!#((*qvv1.D-I-I-KKJJqMHHRZZ JJqMHHRZZ e\ 99Q<    c                       \ rS rSr\R
                  " S\5      rS rS r	S r
S rS rS rS	 rS
 rS rS rS rS rS rSrg)TestWatershedC      r/   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
[         R                  5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
[         R                  5      n[	        XU R
                  5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
5      n[        XC5      nU[        :  d   eg)	zwatershed 1r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r5   r5   r5   r5   r5   r5   r5   r   r   r   r   r   r5   N)r   arrayuint8int8r   eightr)   eps)selfdatamarkersoutexpectederrors         r(   test_watershed01TestWatershed.test_watershed01F   s    xx%%%%%%%%%% HH
 ((&%%%%%%%%% GG
 tzz288,,,''''',,
 X#s{{r*   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[         R                  5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[         R                  5      n[	        X5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/U5      nU R                  U[        :  5        g	)
zwatershed 2r1   r2   r3   r4   r6   r7   )r5   r5   r   r   r   r5   r5   r8   Nr   r9   r:   r;   r   r)   
assertTruer=   r>   r?   r@   rA   rC   s        r(   test_watershed02TestWatershed.test_watershed02x   s    xx%%%%%%%%%%% HH
  ((&%%%%%%%%%% GG
  &,,,,)'''),, 
  	$r*   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
[         R                  5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
[         R                  5      n[	        X5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
U5      nU R                  U[        :  5        g	)
zwatershed 3r1   r2   r   r   r   r   r   r   r   r   r   r   r   r/   r   r   r   r   r   r   r   r   r5   r7   )r5   r   r   r   r/   r   r5   r5   r   r   r   r/   r/   r5   NrG   rI   s        r(   test_watershed03TestWatershed.test_watershed03   s    xx%%%%%%%%%% HH
 ((%%%%%%%%%& GG
 &,''''',,,, 
 	$r*   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
[         R                  5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
[         R                  5      n[	        XU R
                  5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
U5      nU R                  U[        :  5        g)	zwatershed 4r1   r2   rM   rN   rO   r7   rP   N	r   r9   r:   r;   r   r<   r)   rH   r=   rI   s        r(   test_watershed04TestWatershed.test_watershed04       xx%%%%%%%%%% HH
 ((%%%%%%%%%& GG
 tzz2,''''',,,, 
 	$r*   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
[         R                  5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
[         R                  5      n[	        XU R
                  5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/
U5      nU R                  U[        :  5        g)	zwatershed 5r1   r2   rM   )r   r   r/   r   r   r   r   rO   r7   )r5   r/   r/   r   r   r   r5   NrT   rI   s        r(   test_watershed05TestWatershed.test_watershed05  rW   r*   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/	[         R                  5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/	[         R                  5      n[	        XU R
                  5      n[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/	U5      nU R                  U[        :  5        g)	zwatershed 6r3   r2   r1   r6   r4   r8   r7   NrT   rI   s        r(   test_watershed06TestWatershed.test_watershed06C  s    xx%%%%%%%%%
 HH
 ((%%%%%%%%&
 GG
 tzz2'''',,,,,
 
 	$r*   c                 D   [         nUS:g  n[        R                  " UR                  [        5      nSUS'   SUS'   [        XU R                  US9n[        R                  " US:H  5      n[        R                  " US:H  5      nU R                  [        XV-
  5      S:*  5        g)	z3A regression test of a competitive case that failedr	   r         r      ra   maskr`   N)
blobr   zerosr   intr   r<   r   rH   absr>   r?   re   r@   rA   size1size2s          r(   test_watershed07TestWatershed.test_watershed07r  s    s{((4::s+tzz=
 sax sax EM*a/0r*   c                 r   [         R                  5       nSUSSS24'   US:g  n[        R                  " UR                  [
        5      nSUS'   SUS	'   [        XU R                  US
9n[        R                  " US:H  5      n[        R                  " US:H  5      nU R                  [        XV-
  5      S:*  5        g)z2The border pixels + an edge are all the same valuer   
   ra   	   r	   r   r_   r   rb   rd   r`   N)rf   copyr   rg   r   rh   r   r<   r   rH   ri   rj   s          r(   test_watershed08TestWatershed.test_watershed08  s    yy{R1Ws{((4::s+tzz=
 sax sax EM*a/0r*   c                    [         R                  " S5      n[         R                  R                  SSS5      R	                  [
        5      n[         R                  " S[
        5      nSnU H  u  pVSXU4'   XCXV4'   US-  nM     [        USSS9n[        XU R                  5        [        R                  " UR	                  [         R                  5      X0R                  5        g	)
zTest on an image of reasonable size

This is here both for timing (does it take forever?) and to
ensure that the memory constraints are reasonable
)  rv   r   rv   )d   r   r      reflect)sigmamodeN)r   rg   randomuniformr!   rh   r   r   r<   ndiwatershed_iftuint16)r>   imagecoordsr@   idxxys          r(   test_watershed09TestWatershed.test_watershed09  s     &""1dH5<<SA((<-DAEQ$KADM1HC 
 ai8%$**-%,,ryy17JJGr*   c                 T   [         R                  " / SQ/ SQ/ SQ/ SQ/[         R                  5      n[         R                  " / SQ/ SQ/ SQ/ SQ/[         R                  5      n[	        XU R
                  5      n[        / SQ/ SQ/ SQ/ SQ/U5      nU R                  U[        :  5        g)zwatershed 10)r   r   r   r   )r   r   r   r   )r   r   r   r   )r/   r   r   rx   )r   r   r   r   )r/   r/   rx   rx   NrT   rI   s        r(   test_watershed10TestWatershed.test_watershed10  s{    xx<|Dbhh
 ((<|Dbgg
 tzz2lL,MsS$r*   c                    [         R                  " S5      n[         R                  " S[        5      nSUS'   SUS'   SUS'   SUS	'   [         R                  " / S
Q/ SQ/ S
Q/5      n[	        XU5      n[         R
                  SS2SS24   u  pV[         R                  " S VVs/ s HN  u  px[         R                  " UR                  [        5      U-
  S-  UR                  [        5      U-
  S-  5      PMP     snn5      n	[         R                  " U	S5      n
U R                  [         R                  " XXdXV4   S-
  4   U
:H  5      5        gs  snnf )zFMake sure that all points on this plateau are assigned to closest seed   r   r      r   r   r   rp   r/   rp   r   rx   rp   rp   )FTF)TTTr   r   )r   r   r   r   N)r   rg   rh   r9   r   mgriddstackr$   r!   floatminrH   all)r>   r   r@   	structurerA   iji0j0ddmins              r(   test_watershed11TestWatershed.test_watershed11  s)    "((8S)HH!#57KL
	 	2xx"ad
#II CBFB %2-!3ahhuo6Jq5PQB
 vva|qA14y1}!45=>?s   !AE	
c                 Z   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      nUS:H  n[        U5      n[        XSSS9n[	        [        S5      / SQ5       H/  u  pVU R                  [         R                  " XE:H  5      U:H  5        M1     g)zThe watershed line)   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r	   r   r   r   r   f   r   r   r   r   r   r   r   r   r   )r   r	   r   r   r   r   r   r   M   r   r   r   r   r   r   r   )r   r	   r	   r   r   r   r   r   r   r   r   r   r   r   r   r	   )r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r	   r	   )r   r   r	   r	   r	   r   r   r   r   r   r   r   r   r	   r	   r   )r   r   r   r   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   r   r   )r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r	   r   r   r	   r   r   r   r   )r   r   r   r   r   r   r   r	   r	   r   r   r   r   r   r   r   )r   3   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r	   r   r	   r   r   r   r   r   r   )r   r   r   r   r   r   r	   r	   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   T)connectivitywatershed_linerx   )"   J   r   r   N)r   r9   r   r   ziprangerH   r   )r>   r?   	markerbinmarkerwslabareas          r(   test_watershed12TestWatershed.test_watershed12  s    xx$$$$$$$$$$$$$$$_ac
H	 AI	y!t!DIU1X'78ICOOBFF29-56 9r*   c                 x   [         R                  R                  5       R                  SS9n[         R                  " S[         R                  S9n/ SQU/ SQ/ SQ4'   [         R
                  " U5      n[        X5      n[         R                  R                  X25        [         R                  " XB:H  5      (       a   eg)z.Test to ensure input markers are not modified.r   )sizer   )r   r   r/   rx   )r   r      r   )r   r   r   r   N)
r   r|   default_rngrg   r:   rr   r   testingassert_equalr   )r>   r   r@   original_markersresults        r(   !test_watershed_input_not_modified/TestWatershed.test_watershed_input_not_modified  s    		%%'..H.=((828842>./777+5*


 0:66&+,,,,,r*    N)__name__
__module____qualname____firstlineno__r   onesboolr<   rD   rJ   rQ   rU   rY   r\   rm   rs   r   r   r   r   r   __static_attributes__r   r*   r(   r,   r,   C   s]    GGFD!E0d3%j0%d0%d0%d-%^1 1"H&
%@8j7X	-r*   r,   c                  J   [         R                  " S5      n SU S S 2S4'   SU S S 2SS 24'   [         R                  " S[        S9nSUS'   SUS'   [        XS	S
9n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[        S9n[         R
                  R                  X#5        [        X5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[        S9n[         R
                  R                  XC5        [        XS	SS9nXR:g  nSXeS:H  '   [         R                  " U5      (       a   eg )Nr   r`   r   r/   r   rx   r   )r   r   )r   r   {Gz?compactness)r   r   r   r   r   r   r   r   r   r   r   r   T)r   r   Fr   )r   rg   rh   r   r9   r   r   any)r   seedscompactrB   normalcompact_wsl
differences          r(   test_compact_watershedr     s    HHVEE!Q$KE!QR%LHHV3'EE$KE$K$7Gxx	
 	H JJG.u$Fxx	
 	H JJF- Ed4PK'J#(Ja vvj!!!!!r*   c                  x   [         R                  " S5      u  pSu  p#pESu  pgX-
  S-  X-
  S-  -   US-  :  nX-
  S-  X-
  S-  -   US-  :  n	[         R                  " X5      n
[        R                  " U
5      n[        U[         R                  " S5      U
S9nUSS2S4==   S	-  ss'   [         R                  " UR                  [        S
9nSU[        UR                  5      '   [        R                  " U5      u  p[        U* XS9n[        R                  R!                  UU* S9nUS   R"                  S:X  d   e[         R$                  " SS[&        S9R)                  SS5      n[         R*                  R-                  US   R.                  U5        US   R0                  S:X  d   eUS   R0                  S:X  d   eg)a  
Check edge case behavior reported in gh-6632

While we initially viewed the behavior described in gh-6632 [1]_ as a bug,
we have reverted that decision in gh-7661. See [2]_ for an explanation.
So this test now actually asserts the behavior reported in gh-6632 as
correct.

.. [1] https://github.com/scikit-image/scikit-image/issues/6632.
.. [2] https://github.com/scikit-image/scikit-image/issues/7661#issuecomment-2645810807
)P   r   )   r   ,   r   )      r   r.   )	footprintlabelsNr   r`   r   Trd   )intensity_imager   i)startstopr   r5   rp   i  )r   indices
logical_orr~   distance_transform_edtr   r   rg   r   r   tupleTr   r   skimagemeasureregionpropsextentaranger   reshaper   r   image_intensity
num_pixels)r   r   x1y1x2y2r1r2mask_circle1mask_circle2r   distancer   re   r@   _r   propsexpected_regions                      r(   "test_watershed_with_markers_offsetr   3  s    ::hDA#NBBFBFq=AFq=02q58LFq=AFq=02q58LMM,5E
 ))%0HHNF
1a4LAL88HNN$/D Dvxx4JGy'6FOO''	'JE 8??aiic?GGANOJJE!H44oF 8"$$$8$&&&r*   c                     [         R                  " / SQ/ SQ/5      n [         R                  " / SQ/ SQ/5      n[         R                  " / SQ/ SQ/5      n[        XS9n[         R                  R	                  X25        [         R                  " / SQ5      * n [         R                  " / SQ5      n[         R                  " / S	Q5      n[        XU S
:g  S9n[         R                  R                  X25        g)a  
Test edge case behavior when markers spill over into another basin / compete.

While we initially viewed the behavior described in gh-6632 [1]_ as a bug,
we have reverted that decision in gh-7661. See [2]_ for an explanation.
So this test now actually asserts the behavior reported in gh-6632 as
correct.

.. [1] https://github.com/scikit-image/scikit-image/issues/6632.
.. [2] https://github.com/scikit-image/scikit-image/issues/7661#issuecomment-2645810807
)	r`   r   rx   r/   r   r/   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r@   )r   r   r   r   r   r   r/   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r@   re   N)r   r9   r   r   r   assert_array_equalr   r@   rB   r   s       r(   %test_watershed_simple_basin_overspillr   `  s     xx446 7Exx446 7Gxx446 7H u.FJJF- XX+,,Ehh,-Gxx-.HuEQJ?FJJ!!&3r*   c                     [         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  " / SQ5      n[        XS9n[         R                  R	                  X25        [         R                  " / SQ5      n [         R                  " / SQ5      n[        XS9n[         R                  R	                  X25        g)a  
Edge case: Basins should be distributed evenly between contesting markers.

Markers should be prevented from spilling over into another basin and
conquering it against other markers with the same claim, just because they
get to the basin one step earlier.
)
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   Nr   r9   r   r   r   r   s       r(   +test_watershed_evenly_distributed_overspillr     s     xx67Exx67Gxx67Hu.FJJF- xx67Exx67Hu.FJJF-r*   c                      [         R                  " / SQ/ SQ/5      n [         R                  " / SQ/ SQ/5      n[         R                  " / SQ/ SQ/5      n[        XS9n[         R                  R	                  X25        g)	zCheck that markers placed at maxima don't conquer other pixels.

Regression test for gh-7661 [1]_.

.. [1] https://github.com/scikit-image/scikit-image/issues/7661
)r   r   r   r/   rx   r   rx   )r   r   r   r/   rx   rx   rx   )r   r   r   r   r   r   r   r1   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   Nr   r   s       r(   test_markers_on_maximar    sk     xx..0 1Exx..0 1Gxx..0 1Hu.FJJF-r*   c                      [         R                  " S5      n SU SS2SS24'   [        U SSS9n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S	9n[         R
                  R                  X5        g)
z>Test that passing just the number of seeds to watershed works.r   r   Nr/   r   r   r   r   r   )r   rg   r   r9   int32r   r   )r   r   rB   s      r(   test_numeric_seed_watershedr    sl    HHVEE!QR%Lqd3Gxx	
 hh	H JJG.r*   r   c                     [         R                  " S5      n[         R                  " SU 5      n[        X5      nUR                  UR                  :X  d   eg )N)rw   rw   )r   rg   r   r   )r   r   r@   rA   s       r(   test_watershed_output_dtyper    sB    
 HHZ Ehhz5)G
E
#C99%%%r*   c                      [         R                  " S5      n [         R                  " S5      n[        R                  " [        5         [        X5        S S S 5        g ! , (       d  f       g = f)Nr   r   ra   r   r   pytestraises
ValueErrorr   )r   r@   s     r(   test_incorrect_markers_shaper    s<    GGFOEggfoG	z	"%! 
#	"	"   A
A*c                      [         R                  " S5      n [         R                  " S5      n[        R                  " [        5         [        U SUS9  S S S 5        g ! , (       d  f       g = f)Nr   r	  rx   r   r
  )r   re   s     r(   test_incorrect_mask_shaper    s@    GGFOE776?D	z	"%. 
#	"	"r  c                  x    [         n U S:g  n[        U SSUS9n[        R                  " X!)    S:H  5      (       d   eg )Nr	      r   )r   re   r   )rf   r   r   r   r?   re   rA   s      r(   test_markers_in_maskr    s=    D3;D
D"14
8C66#e*/""""r*   c                  d    [         n U S:g  n[        XS9n[        R                  " U5      S:X  d   eg )Nr	   rd   r   )rf   r   r   maxr  s      r(   test_no_markersr    s0    D3;D
D
$C66#;!r*   c                     [         R                  " S5      u  pSu  p#pEpgpSu  ppX-
  S-  X-
  S-  -   U
S-  :  nX-
  S-  X-
  S-  -   US-  :  nX-
  S-  X-
  S-  -   US-  :  nX-
  S-  X-
  S-  -   US-  :  n[         R                  " X5      n[         R                  " UU5      n[         R                  " UU5      n[        R                  " U5      n[         R
                  " US-  SS9S-  n[         R                  " US:H  SS5      n[        S	U-
  USS
S9n[        S	U-
  USS
S9n[         R                  " U5      R                  S   S:X  d   e[         R                  " U5      R                  S   S:X  d   e[        [        S5      / SQ5       H%  u  nn[         R                  " UU:H  5      U:X  a  M%   e   [        [        S5      / SQ5       H%  u  nn[         R                  " UU:H  5      U:X  a  M%   e   g)z
Watershed segmentation should output different result for
different connectivity
when markers are calculated where None is supplied.
Issue = 5084
)i  i  )      i,  x   rw   rw   iT  r  )rw   2   (   r   r      r   )decimalsr   r  r   )re   r   r   r`   r   )  E  iO  iY+  i  i,  )r!  r"  iO  ib0  i,  N)r   r   r   r~   r   aroundwherer   uniquer   r   r   r   )r   r   r   r   r   r   x3y3x4y4r   r   r3r4r   r   mask_circle3mask_circle4r   DummyBTDummyBT_disImg_mask	labels_c1	labels_c2r   r   s                             r(   test_connectivityr3    s    ::j!DA%K"BBBB$NBBFq=AFq=02q58LFq=AFq=02q58LFq=AFq=02q58LFq=AFq=02q58LMM,5EMM%.EMM%.E ((/G))GbL15:Kxxq(!Q/H kqdI kqdI
 99Y%%a(A---99Y%%a(A--- q#KL	Tvvi3&'4/// M q#EF	Tvvi3&'4/// Gr*   ).__doc__r#   unittestnumpyr   r  scipyr   r~   skimage.measurer   skimage._shared.filtersr   skimage.featurer   r   
_watershedr   r=   r9   rf   r)   TestCaser,   r   r   r   r   r  r  markparametrizer:   r;   r   int16uint32r  uint64int64r  r  r  r  r  r3  r   r*   r(   <module>rC     s-   6        , * ! "	xxaaaaaaaaaaaaaaaaaaaaa)c d00
-H%% 
-D+"\*'Z4@.,."/$ XXrww		288RYY"))RXXV&	&"/#*0r*   