
    9i                     h    S SK rS SKrS SKJr  S SKJrJrJrJ	r	  S r
S rS rS rS rS	 rS
 rS rg)    N)assert_array_equal)disk_level_setinverse_gaussian_gradientmorphological_chan_vese%morphological_geodesic_active_contourc                      [         R                  SS2SS24   n U S-  R                  S5      n[         R                  " U* S-  5      $ )N      r   
   )npmgridsumexp)coordssqrdistancess     k/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/segmentation/tests/test_morphsnakes.pygaussian_blobr      sD    XXbdBqDj!FAI??1%L66<-"$%%    c                  X   [         R                  " S5      n [         R                  " S5      n[        R                  " [        5         [        U SUS9  S S S 5        [        R                  " [        5         [        U SUS9  S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)N)r   r      )r   	      num_iterinit_level_setr   zerospytestraises
ValueErrorr   r   imglss     r   &test_morphsnakes_incorrect_image_shaper%      sk    
((;
C	'	B	z	"aC 
#	z	"-cAbQ 
#	" 
#	"	"	"   B
5B

B
B)c                  X   [         R                  " S5      n [         R                  " S5      n[        R                  " [        5         [        U SUS9  S S S 5        [        R                  " [        5         [        U SUS9  S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)N)   r(   r(   r(   r   r   r   r"   s     r   test_morphsnakes_incorrect_ndimr)      sk    
((<
 C	,	B	z	"aC 
#	z	"-cAbQ 
#	" 
#	"	"	"r&   c            	      "   [         R                  " S5      n [        U R                  SSS9n[         R                  " U R                  [         R                  S9n[         R
                  " U R                  [         R                  S9n[        U SUS9n[        XB5        [        U SUS9n[        XR5        [        U SUSS	S
S9n[        Xc5        UR                  UR                  s=:X  a&  UR                  s=:X  a  [         R                  :X  d   e   eg )N   r,      r.   r   centerradiusdtyper
   r   r   r   )r   r   balloon	threshold	smoothing)
r   r   r   shapeint8onesr   r   r   r3   )r#   r$   	ref_zerosref_onesacwe_lsgac_lsgac_ls2s          r   test_morphsnakes_blackr@   '   s    
((8
C			&	;B"''2Iwwsyy0H%cAbIGw*23SUVFv)3aAqG w)==FLLDGMMDRWWDDDDDr   c                     [        5       n [        U R                  SSS9n[        U R                  SSS9n[        U SUS9n[        U SUS9n[	        X45        UR
                  UR
                  s=:X  a  [        R                  :X  d   e   eg )Nr-   r   r/   r
   r   r   )r   r   r8   r   r   r3   r   r9   )r#   ls1ls2acwe_ls1acwe_ls2s        r   'test_morphsnakes_simple_shape_chan_veserF   <   sv    
/C
6!
<C
6!
<C&sRLH&sRLHx*>>X^^6rww66666r   c                  v   [        SSSS9R                  [        5      n [        U SSS9n[        U R                  SSS9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                  S9n[        USUSS9n[        XC5        UR                  [
        R                  :X  d   eg )Nr+   r-   g      @r/   g      $@g      ?)alphasigmar
   )r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r2   r   r4   )r   r   r5   )r   astypefloatr   r8   r   arrayr9   r   r   r3   )r#   gimgr$   refr>   s        r   5test_morphsnakes_simple_shape_geodesic_active_contourrO   I   s    (6#>
F
Fu
MC$SC@D			&	;B
((-----------	
 ggC" 3r"bF v#<<277"""r   c            	      d   [         R                  " S5      n [        U SS5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9n[        U SS5      n[         R                  " / SQ/ S	Q/ S
Q/ S
Q/ S
Q/ S	Q/[         R                  S9n[        X5        [        X45        g )N)r
   r
   r   checkerboard)r   r   r   r   r   r   )r   r   r   r   r   r   r2   disk)r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   rL   r9   r   r   )imagecheckerboard_lscheckerboard_refdisk_lsdisk_refs        r   test_init_level_setsrX   f   s    HHVE-eQGOxx	
 gg
 4E1fEGxx	
 gg
H 9w)r   c                     ^ [         R                  " S5      n / mU4S jn[        U SSUS9nTS   S:X  d   eUR                  5       S:X  d   e[	        TS S TS	S  5       H  u  p4X4:  a  M   e   g )
N)   rZ   rZ   c                 D   > TR                  U R                  5       5        g )N)appendr   )x	evolutions    r   callback%test_morphsnakes_3d.<locals>.callback   s    !r   r.   rR   )iter_callbackr   Q   r4   r   )r   r   r   r   zip)rS   r_   r$   v1v2r^   s        @r   test_morphsnakes_3drf      s    HHYEI" 
!6	JB Q<2 668q== inim4xx 5r   )numpyr   r   numpy.testingr   skimage.segmentationr   r   r   r   r   r%   r)   r@   rF   rO   rX   rf    r   r   <module>rk      sD      , &RRE*
7#:*@r   