
    1-Ph                     j    d dl Zd dlZd dlmZ d dlmZmZmZm	Z	 d Z
d Zd Zd Zd Zd	 Zd
 Zd ZdS )    N)assert_array_equal)disk_level_setinverse_gaussian_gradientmorphological_chan_vese%morphological_geodesic_active_contourc                      t           j        ddddf         } | dz                      d          }t          j        | dz            S )N      r   
   )npmgridsumexp)coordssqrdistancess     k/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/segmentation/tests/test_morphsnakes.pygaussian_blobr      sF    XbdBqDj!FAI??1%%L6<-"$%%%    c                  d   t          j        d          } t          j        d          }t          j        t                    5  t          | d|           d d d            n# 1 swxY w Y   t          j        t                    5  t          | d|           d d d            d S # 1 swxY w Y   d S )N)r   r      )r   	      num_iterinit_level_setr   zerospytestraises
ValueErrorr   r   imglss     r   &test_morphsnakes_incorrect_image_shaper%      sH   
(;

C	'		B	z	"	" D DaCCCCD D D D D D D D D D D D D D D	z	"	" R R-cAbQQQQR R R R R R R R R R R R R R R R R R$   A!!A%(A%B%%B),B)c                  d   t          j        d          } t          j        d          }t          j        t                    5  t          | d|           d d d            n# 1 swxY w Y   t          j        t                    5  t          | d|           d d d            d S # 1 swxY w Y   d S )N)   r(   r(   r(   r   r   r   r"   s     r   test_morphsnakes_incorrect_ndimr)      sH   
(<
 
 C	,		B	z	"	" D DaCCCCD D D D D D D D D D D D D D D	z	"	" R R-cAbQQQQR R R R R R R R R R R R R R R R R Rr&   c                  $   t          j        d          } t          | j        dd          }t          j        | j        t           j                  }t          j        | j        t           j                  }t          | d|          }t          ||           t          | d|          }t          ||           t          | d|dd	d
          }t          ||           |j	        |j	        cxk    r|j	        cxk    rt           j        k    sn J d S )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"'222Iwsy000H%cAbIIIGw	***23SUVVVFvy)))3aAq  G w)))=FLDDDDGMDDDDRWDDDDDDDDr   c                  0   t                      } t          | j        dd          }t          | j        dd          }t          | d|          }t          | d|          }t	          ||           |j        |j        cxk    rt          j        k    sn J d S )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   <   s    
//C
6!
<
<
<C
6!
<
<
<C&sRLLLH&sRLLLHx***>X^6666rw66666666r   c                     t          ddd                              t                    } t          | dd          }t          | j        dd          }t          j        g d	g d	g d
g dg dg dg dg dg d
g d	g d	gt
          j                  }t          |d|d          }t          ||           |j
        t
          j        k    sJ d S )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
M
MC$SC@@@D		&	;	;	;B
(---------------------------------	
 g  C" 3r"b  F vs###<27""""""r   c            	      z   t          j        d          } t          | dd          }t          j        g dg dg dg dg dg dgt           j                  }t          | dd          }t          j        g dg d	g d
g d
g d
g d	gt           j                  }t          ||           t          ||           d S )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   HVE-eQGGOx	
 g
 
 
 4E1fEEGx	
 g
 
 
H (8999w)))))r   c                     t          j        d          } g fd}t          | dd|          }d         dk    sJ |                                dk    sJ t	          d d         d	d                    D ]\  }}||k    sJ d S )
N)   rZ   rZ   c                 V                         |                                            d S )N)appendr   )x	evolutions    r   callbackz%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_3dre      s    HYEI" " " " " 
!6	J	J	JB Q<2 6688q==== inim44  BRxxxxx r   )numpyr   r   numpy.testingr   skimage.segmentationr   r   r   r   r   r%   r)   r@   rF   rO   rX   re    r   r   <module>rj      s         , , , , , ,           & & &R R RR R RE E E*
7 
7 
7# # #:* * *@    r   