ó
 ‰\c           @   s‹  d  d l  Z d  d l  m Z d  d l m Z m Z d  d l m Z d  d l m	 Z	 m
 Z
 m Z d  d l m Z d  d l Z e j e j ƒ  ƒ Z e d d k Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e	 j e	 j e	 j e	 j g Z e j  j! d e ƒ d „  ƒ Z" d „  Z# e	 j e	 j g Z$ e j  j! d e$ ƒ d „  ƒ Z% d „  Z& d „  Z' d „  Z( e) d k r‡e j* ƒ  n  d S(   iÿÿÿÿN(   t   testing(   t   datat   color(   t   img_as_bool(   t   binaryt   greyt   selem(   t   ndimageid   g     ào@c          C   sy   t  j d ƒ }  t j t d  d … d  d … f |  ƒ } t t j t d  d … d  d … f |  ƒ ƒ } t j	 | | ƒ d  S(   Ni   id   iÈ   (
   R   t   squareR   t   binary_erosiont   bw_imgR   R   t   erosionR    t   assert_array_equal(   t   strelt
   binary_rest   grey_res(    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_non_square_image   s    (.c          C   sM   t  j d ƒ }  t j t |  ƒ } t t j t |  ƒ ƒ } t j	 | | ƒ d  S(   Ni   (
   R   R   R   R	   R
   R   R   R   R    R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_binary_erosion   s    c          C   sM   t  j d ƒ }  t j t |  ƒ } t t j t |  ƒ ƒ } t j	 | | ƒ d  S(   Ni   (
   R   R   R   t   binary_dilationR
   R   R   t   dilationR    R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_binary_dilation   s    c          C   sM   t  j d ƒ }  t j t |  ƒ } t t j t |  ƒ ƒ } t j	 | | ƒ d  S(   Ni   (
   R   R   R   t   binary_closingR
   R   R   t   closingR    R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_binary_closing$   s    c          C   sM   t  j d ƒ }  t j t |  ƒ } t t j t |  ƒ ƒ } t j	 | | ƒ d  S(   Ni   (
   R   R   R   t   binary_openingR
   R   R   t   openingR    R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_binary_opening+   s    c          C   s‡   t  j d d t  j ƒ}  t  j d d t ƒ} t | d d … d d … f <t j | |  ƒ } t t	 j
 | |  ƒ ƒ } t j | | ƒ d  S(   Ni   t   dtypei   i   i   (   i   i   (   i   i   (   t   npt   onest   uint8t   zerost   boolt   TrueR   R	   R   R   R   R    R   (   R   t   imgR   R   (    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_selem_overflow2   s    c          C   s«   x¤ t  j t  j f D] }  t j d d t j ƒ} t j d ƒ } t j | ƒ } | j ƒ  } |  | | d | ƒt j	 t j
 | | k ƒ ƒ t j | |  | | ƒ ƒ q Wd  S(   Ni   R   i
   t   out(   i   i   (   i
   i
   (   R   R	   R   R   R   R   t
   zeros_liket   copyR    t   assert_t   anyR   (   t   funcR   R"   R$   t	   out_saved(    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_out_argument;   s    t   functionc         C   s  t  j d d ƒ } t j d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 d d d d d d d d d d g
 g t j ƒ } |  | | ƒ } |  | ƒ } t j | | ƒ d  S(   Nt   radiusi   i    (   R   t   diamondR   t   arrayR   R    R   (   R,   R   t   imaget   im_expectedt   im_test(    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_default_selemJ   s"    '!!!!!!!!!!!0c          C   s£   t  j d t  j ƒ }  d |  d d … d d … d d … f <t j |  ƒ } t  j d	 d t ƒ} t j d d ƒ | d d … d d … d d … f <t j | | ƒ d  S(
   Ni   i   i   iþÿÿÿR   i   i   (   i   i   i   (   i   i   i   (	   R   R   R    R   R   t   ndit   generate_binary_structureR    R   (   R0   t   openedt   image_expected(    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_3d_fallback_default_selem^   s    %1c         C   su   t  j d t  j ƒ } d | d d … d d … d d … f <t  j d d t  j ƒ} |  | | ƒ } t j | | ƒ d  S(	   Ni   i   i   iþÿÿÿi   R   (   i   i   i   (   i   i   i   (   R   R   R    R   R   R    R   (   R,   R0   t   cubet	   new_image(    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_3d_fallback_cube_selemn   s
    %c          C   sÕ   t  j d t  j ƒ }  d |  d d … d d … f <d |  d d … d d … f <d |  d <t j |  ƒ } t j |  ƒ } t j d d	 ƒ } t j |  d | ƒ} t j |  d | ƒ} t j	 | | ƒ t j	 | | ƒ d  S(   Ni	   i   i   iþÿÿÿi   i   iýÿÿÿi   i   i   t	   structure(   i	   i	   i @  i €  i   iÿÿ  (   i   i   (
   R   R   t   uint16R   R   R   R4   R5   R    R   (   R0   t
   bin_openedt
   bin_closedR   t   ndimage_openedt   ndimage_closed(    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_2d_ndimage_equivalencey   s    
c          C   s'  t  j d t  j ƒ }  d |  d d … d d … f <d |  d d … d d … f <d |  d <t j |  ƒ } t j |  ƒ } t  j |  d t  j ƒ} t  j |  d t  j ƒ} t j |  d | ƒt j |  d | ƒt j	 | j
 t  j ƒ t j	 | j
 t  j ƒ t j	 | j
 t  j ƒ t j	 | j
 t  j ƒ d  S(   Ni	   i   i   iþÿÿÿi   i   iýÿÿÿi   i   i   R   R$   (   i	   i	   i @  i €  i   iÿÿ  (   i   i   (   R   R   R=   R   R   R   t
   empty_likeR   R    t   assert_equalR   R    (   R0   R>   R?   t
   int_openedt
   int_closed(    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_binary_output_2d‰   s    
c          C   s9  t  j d t  j ƒ }  d |  d d … d d … d d … f <d |  d d … d d … d d … f <d |  d <t j |  ƒ } t j |  ƒ } t  j |  d t  j ƒ} t  j |  d t  j ƒ} t j |  d | ƒt j |  d | ƒt j	 | j
 t  j ƒ t j	 | j
 t  j ƒ t j	 | j
 t  j ƒ t j	 | j
 t  j ƒ d  S(   Ni	   i   i   iþÿÿÿi   i   iýÿÿÿi   i   i   R   R$   (   i	   i	   i	   i @  i €  i   iÿÿ  (   i   i   i   (   R   R   R=   R   R   R   RC   R   R    RD   R   R    (   R0   R>   R?   RE   RF   (    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   test_binary_output_3d   s    %%
t   __main__(+   t   numpyR   R    t   skimageR   R   t   skimage.utilR   t   skimage.morphologyR   R   R   t   scipyR   R4   t   pytestt   rgb2grayt	   astronautR"   R
   R   R   R   R   R   R#   R+   R	   R   R   R   t   binary_functionst   markt   parametrizeR3   R8   t   binary_3d_fallback_functionsR;   RB   RG   RH   t   __name__t   run_module_suite(    (    (    sC   lib/python2.7/site-packages/skimage/morphology/tests/test_binary.pyt   <module>   s4   												