ó
 ‰\c           @   sÂ   d  d l  m Z d  d l Z d  d l m Z d  d l m Z d  d l m	 Z	 m
 Z
 e	 ƒ  d „  ƒ Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿ(   t   productN(   t   slic(   t   testing(   t   test_parallelt   assert_equalc          C   sœ  t  j j d ƒ }  t  j d ƒ } d | d  d … d  d … d f <d | d d  … d  d … d f <d | d d  … d d  … d f <| d |  j d	 | j ƒ 7} d | | d k <d | | d k  <t | d
 d d d d t ƒ} t t	 t  j
 | ƒ ƒ d ƒ t | j | j d  ƒ t | d  d … d  d … f d ƒ t | d d  … d  d … f d ƒ t | d  d … d d  … f d ƒ t | d d  … d d  … f d ƒ d  S(   Ni    i   i   i   i   i
   i   g{®Gáz„?t   sizet
   n_segmentsi   t   sigmat   enforce_connectivityiÿÿÿÿ(   i   i   i   (   t   npt   randomt   RandomStatet   zerost   normalt   shapeR   t   FalseR   t   lent   unique(   t   rndt   imgt   seg(    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_color_2d
   s    ###c          C   sÈ  t  j j d ƒ }  t  j d ƒ } d | d  d … d  d … d d … f <d | d  d … d d  … d d … f <d | d d  … d  d … d d … f <d | d d  … d d  … d d … f <| d	 |  j d
 | j ƒ 7} t  j | d d d | ƒ} t | d d d t ƒ} t	 t
 t  j | ƒ ƒ d ƒ t	 | j | j d  ƒ t	 | d  d … d  d … f d ƒ t	 | d d  … d  d … f d ƒ t	 | d  d … d d  … f d ƒ t	 | d d  … d d  … f d ƒ d  S(   Ni    i   i   i   i
   i   i   i   g{®Gáz„?R   t   outR   R   iÿÿÿÿi   (   i   i   i   (   R	   R
   R   R   R   R   t   clipR   R   R   R   R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_multichannel_2d   s    %%%%###c          C   s›  t  j j d ƒ }  t  j d ƒ } d | d  d … d  d … f <d | d d  … d  d … f <d | d d  … d d  … f <| d |  j d	 | j ƒ 7} d
 | | d
 k <d | | d k  <t | d d d d d d
 d t d t ƒ} t t	 t  j
 | ƒ ƒ d ƒ t | j | j ƒ t | d  d … d  d … f d ƒ t | d d  … d  d … f d ƒ t | d  d … d d  … f d
 ƒ t | d d  … d d  … f d ƒ d  S(   Ni    i   i   g…ëQ¸Õ?i
   gq=
×£på?g      ð?gF%ušk?R   i   R   R   i   t   compactnesst   multichannelt   convert2labi   i   (   i   i   (   R	   R
   R   R   R   R   R   R   R   R   R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_gray_2d3   s     ###c    	      C   su  t  j j d ƒ }  t  j d ƒ } g  } xD | j d  D]5 } | d } | j t d  | ƒ t | d  ƒ f ƒ q5 Wt t	 | Œ  ƒ } t t	 d d g f d Œ  ƒ } x' t
 | | ƒ D] \ } } | | | <q¯ W| d	 |  j d
 | j ƒ 7} d | | d k <d | | d k  <t | d d d d ƒ} t t t  j | ƒ ƒ d ƒ x4 t
 | t d ƒ ƒ D] \ } } t | | | ƒ qPWd  S(   Ni    i   i   i   i   iÿÿÿÿi   i   g{®Gáz„?R   R   R   i   (   i   i   i   i   (   R	   R
   R   R   R   t   appendt   slicet   Nonet   listR    t   zipR   R   R   R   R   t   range(	   R   R   t   slicest   dim_sizet   midpointt   colorst   st   cR   (    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_color_3dG   s"    
)"c    
      C   s}  t  j j d ƒ }  t  j d ƒ } g  } x@ | j D]5 } | d } | j t d  | ƒ t | d  ƒ f ƒ q1 Wt t	 | Œ  ƒ } t  j
 d d d d ƒ } x' t | | ƒ D] \ } } | | | <q¥ W| d	 |  j d
 | j ƒ 7} d | | d k <d | | d k  <t | d d d d d d d t d t ƒ} t t t  j | ƒ ƒ d ƒ x4 t | t d ƒ ƒ D] \ } }	 t | | |	 ƒ qXWd  S(   Ni    i   i   i   i   gzo ð?g      ð?i   gü©ñÒMbP?R   i   R   R   i   R   R   R   (   i   i   i   (   R	   R
   R   R   R   R   R   R   R    R    t   arangeR!   R   R   R   R   R   R   R"   (
   R   R   R#   R$   R%   t   shadesR'   t   shR   R(   (    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_gray_3d\   s$    
)"c          C   så   t  j j d ƒ }  t  j d d d d d d g d d d d d d g g t  j ƒ } | d |  j d | j ƒ 7} t  j d d d d d d g d d d d d d g g t  j ƒ } t | d d d d d d g d	 t	 ƒ} t
 | | ƒ d  S(
   Ni    i   gš™™™™™¹?R   R   i   R   i2   R   (   R	   R
   R   t   arrayt   floatR   R   t   intR   R   R   (   R   R   t   result_sigmat	   seg_sigma(    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_list_sigmar   s    $$'c          C   sO  t  j j d ƒ }  t  j d d d d d g d d d d d g g t  j ƒ } t  j d d d d d g d d d d d g g t  j ƒ } t  j d d d d d g d d d d d g g t  j ƒ } | d |  j d | j ƒ 7} t | d d d d d t	 d	 d
 ƒ} t | d d d d d d d d g d	 d
 d t	 ƒ} t
 | | ƒ t
 | | ƒ d  S(   Ni    i   gš™™™™™¹?R   R   i   R   R   R   g      ð?t   spacingiô  (   R	   R
   R   R.   R/   R0   R   R   R   R   R   (   R   R   t   result_non_spacedt   result_spacedt   seg_non_spacedt
   seg_spaced(    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_spacing}   s    !!!	$c       
   C   sm   t  j d d d d d g d d d d d g g t  j ƒ d }  t j t ƒ  t |  d t d t ƒWd  QXd  S(   Ni   i    R   R   (   R	   R.   R/   R   t   raisest
   ValueErrorR   t   True(   R   (    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_invalid_lab_conversionŽ   s    %c          C   s  t  j d d d d d d g d d d d d d g d d d d d d g g t  j ƒ }  t |  d d d d t d t ƒ} t |  d d d d t d t ƒ} t |  d d d d t d t d d	 ƒ} t  j d d d d d d g d d d d d d g d d d d d d g g t  j ƒ } t  j d d d d d d g d d d d d d g d d d d d d g g t  j ƒ } t | | ƒ t | | ƒ t | | ƒ d  S(
   Ni    i   i   R   g-Cëâ6?R   R   t   max_size_factorgš™™™™™é?(   R	   R.   R/   R   R<   R   R   (   R   t   segments_connectedt   segments_disconnectedt   segments_connected_low_maxt   result_connectedt   result_disconnected(    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_enforce_connectivity•   s*    $		$$c          C   sœ  t  j j d ƒ }  t  j d ƒ } d | d  d … d  d … d f <d | d d  … d  d … d f <d | d d  … d d  … d f <| d |  j d	 | j ƒ 7} d | | d k <d | | d k  <t | d
 d d d d t ƒ} t t	 t  j
 | ƒ ƒ d ƒ t | j | j d  ƒ t | d  d … d  d … f d ƒ t | d d  … d  d … f d ƒ t | d  d … d d  … f d ƒ t | d d  … d d  … f d ƒ d  S(   Ni    i   i   i   i   i
   i   g{®Gáz„?R   R   i   R   t	   slic_zeroiÿÿÿÿ(   i   i   i   (   R	   R
   R   R   R   R   R   R<   R   R   R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_slic_zero´   s    ###c          C   s  t  j j d ƒ }  t  j d ƒ } d | d  d … d  d … f <d | d d  … d  d … f <d | d d  … d d  … f <| d |  j d	 | j ƒ 7} d
 | | d
 k <d | | d k  <t | d d d d d d
 d t d t ƒ} t  j | j	 ƒ  t  j
 | j ƒ k ƒ s	t ‚ d  S(   Ni    i   i   g…ëQ¸Õ?i
   gq=
×£på?g      ð?gF%ušk?R   i   R   R   iô  R   R   R   (   i   i   (   R	   R
   R   R   R   R   R   R   t   allt   ravelR*   R   t   AssertionError(   R   R   R   (    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   test_more_segments_than_pixelsÉ   s    (   t	   itertoolsR    t   numpyR	   t   skimage.segmentationR   t   skimage._sharedR   t   skimage._shared.testingR   R   R   R   R   R)   R-   R3   R9   R=   RD   RF   RJ   (    (    (    sC   lib/python2.7/site-packages/skimage/segmentation/tests/test_slic.pyt   <module>   s   									