o
    e                     @   s   d dl Zd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
 dZdd Zdd	 Zejd
ejejejejgdd Zdd Zejd
ejejejgdd Zejdg ddd ZdS )    N)assert_array_equalassert_allclose)_supported_float_type)find_boundariesmark_boundaries)   r   r   c                  C   s   t jdt jd} d| ddddf< t g dg dg dg d	g d	g d	g dg dg dg dg
}t| }t|| d S )
N
   r	   dtyper         
r   r   r   r   r   r   r   r   r   r   
r   r   r   r   r   r   r   r   r   r   
r   r   r   r   r   r   r   r   r   r   
r   r   r   r   r   r   r   r   r   r   )npzerosuint8arrayr   r   imagerefresult r   ZD:\Projects\ConvertPro\env\Lib\site-packages\skimage/segmentation/tests/test_boundaries.pytest_find_boundaries   s   
r   c                  C   sd   t jdtd} d| ddddf< t jg dg dg dg d	g d	gtd}t| }t|| d S )
N)   r   r
   Tr   r   )FFFFF)FFTTT)FTTTT)FTTFF)r   r   boolr   r   r   r   r   r   r   test_find_boundaries_bool   s   
r   r   c                 C   s&  t jd| d}t jdt jd}d|ddddf< t g dg dg dg d	g d	g d	g dg dg dg dg
}t||td
d}|jt| ksMJ t j|dd}t	|| t g dg dg dg dg dg dg dg dg dg dg
}t||tdd
d}t j|dd}t	|| d S )Nr   r
   r   r   r   r   r   r   r   thickcolormodeZaxis)
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   )r"   Zoutline_colorr#   )
r   r   r   r   r   whiter   r   meanr   )r   r   label_imager   markedr   r   r   r   test_mark_boundaries,   sD   



r*   c                  C   s   t jdtd} t jdt jd}d|ddddf< t g dg dg dg d	g d	g d	g dg dg dg dg
}t| |td
d}t j|dd}t|| d S )Nr   r
   r   r   r   r   r   r   r   r    r!   r$   r%   )	r   r   r   r   r   r   r&   r'   r   )r   r(   r   r)   r   r   r   r   test_mark_boundaries_boolT   s"   
r+   c                 C   s   t jg dg dg dg dg dgt jd}t jd t t jj|j d}|j| dd}t	||t
d	d
}|jt| ks@J t t j|ddd}t g dg dg dg dg dg dg dg dg dg	}t||dd d S )N)r   r   r   r   )r   r   r   r   )r   r   r   r   r
   r   r   F)copysubpixelr!   r$   r%   )皙?g)\(?
ףp=
?Gz?g333333?r.   HzG?)g?g(\?r/         ?r2   r2   r0   )gzG?r1   g?r2   g)\(?r2   {Gz?)r0   r2   r2   r2   r0   r2   (\?)gQ?r2   RQ?r2   gHzG?r2   g(\?)r3   r2   r2   r2   r5   r2   g{Gz?)g=
ףp=?(\?g(\?r2   gQ?r2   g
ףp=
?)g?gp=
ף?gq=
ףp?r2   r2   r2   r1   )g{Gz?gffffff?r4   g?r6   gQ?gףp=
?g{Gz?)Zatol)r   r   r   randomseedroundZrandshapeZastyper   r&   r   r   r'   r   )r   labelsr   r)   Zmarked_projZ
ref_resultr   r   r   test_mark_boundaries_subpixeli   s6   

r<   r#   )r    innerouterr-   c                 C   s0   t jdtd}t|| d}t |dksJ dS )z+A constant-valued image has not boundaries.)   r?   r
   )r#   r   N)r   onesintr   all)r#   r@   br   r   r   test_boundaries_constant_image   s   rD   )numpyr   ZpytestZnumpy.testingr   r   Zskimage._shared.utilsr   Zskimage.segmentationr   r   r&   r   r   markZparametrizer   Zfloat16Zfloat32Zfloat64r*   r+   r<   rD   r   r   r   r   <module>   s"    
%
