o
    hb                     @   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   e/var/www/html/scripts/venv/lib/python3.10/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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"   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?r0   HzG?)g?g(\?r1         ?r4   r4   r2   )gzG?r3   g?r4   g)\(?r4   {Gz?)r2   r4   r4   r4   r2   r4   (\?)gQ?r4   RQ?r4   gHzG?r4   g(\?)r5   r4   r4   r4   r7   r4   g{Gz?)g=
ףp=?(\?g(\?r4   gQ?r4   g
ףp=
?)g?gp=
ף?gq=
ףp?r4   r4   r4   r3   )g{Gz?gffffff?r6   g?r8   gQ?gףp=
?g{Gz?)atol)r   r   r   randomseedroundrandshapeastyper   r(   r   r   r)   r   )r   labelsr   r+   marked_proj
ref_resultr   r   r   test_mark_boundaries_subpixeli   s6   

rC   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.)   rF   r
   )r#   r   N)r   onesintr   all)r#   rG   br   r   r   test_boundaries_constant_image   s   rK   )numpyr   pytestnumpy.testingr   r   skimage._shared.utilsr   skimage.segmentationr   r   r(   r   r   markparametrizer   float16float32float64r,   r-   rC   rK   r   r   r   r   <module>   s"    
%
