ó
 \c           @   s   d  d l  m Z d d l m Z d d l m Z d d l m Z m Z d  d l	 Z	 d d	 l
 m Z d
 g Z d
 e f d     YZ d S(   iĸĸĸĸ(   t   warni   (   t   dtype_rangei   (   t   Plugini   (   t   ClearColormapt   update_axes_imageN(   t   is_installedt   OverlayPluginc           B   sŪ   e  Z d  Z i d d 6d d 6d d 6d d 6Z d   Z d   Z e d	    Z e j d
    Z e d    Z	 e	 j d    Z	 e d    Z
 d   Z d   Z d   Z RS(   sþ  Plugin for ImageViewer that displays an overlay on top of main image.

    The base Plugin class displays the filtered image directly on the viewer.
    OverlayPlugin will instead overlay an image with a transparent colormap.

    See base Plugin class for additional details.

    Attributes
    ----------
    overlay : array
        Overlay displayed on top of image. This overlay defaults to a color map
        with alpha values varying linearly from 0 to 1.
    color : int
        Color of overlay.
    i   i    t   redt   yellowt   greent   cyanc         K   s{   t  d d  s( d } t t |   n  t t |   j |   d  |  _ d  |  _ d  |  _	 t
 t |  j j     |  _ d  S(   Nt
   matplotlibs   >=1.2s-   Matplotlib >= 1.2 required for OverlayPlugin.(   R   R    t   RuntimeWarningt   superR   t   __init__t   Nonet   _overlay_plott   _overlayt   cmapt   sortedt   listt   colorst   keyst   color_names(   t   selft   kwargst   msg(    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyR   #   s    			c         C   s#   t  t |   j |  d |  _ d  S(   Ni    (   R   R   t   attacht   color(   R   t   image_viewer(    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyR   -   s    c         C   s   |  j  S(   N(   R   (   R   (    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyt   overlay2   s    c         C   sÎ   | |  _  |  j j } | d  k r@ | j j |  j  d  |  _ n_ |  j d  k r t | j j	 \ } } | j
 | d |  j d | d | |  _ n t |  j |  |  j j r― d  |  j j _ n  |  j j   d  S(   NR   t   vmint   vmax(   R   R   t   axR   t   imagest   removeR   R   t   dtypet   typet   imshowR   R   t   useblitt   _blit_managert
   backgroundt   redraw(   R   t   imageR!   R   R    (    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyR   6   s    	c         C   s   |  j  S(   N(   t   _color(   R   (    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyR   I   s    c         C   s   t  | t j  r4 | |  j k r4 t d |   n |  j | } | |  _ |  j | } t |  |  _ |  j	 d  k	 r |  j	 j |  j  n  |  j j   d  S(   Ns&   %s not defined in OverlayPlugin.colors(   t
   isinstancet   sixt   string_typesR   t
   ValueErrorR,   R   R   R   R   R   t   set_cmapR   R*   (   R   t   indext   namet   rgb(    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyR   M   s    	c         C   s   |  j  S(   sc   Return filtered image.

        This "filtered image" is used when saving from the plugin.
        (   R   (   R   (    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyt   filtered_image]   s    c         C   s   | |  _  d S(   s?   Display filtered image as an overlay on top of image in viewer.N(   R   (   R   R+   (    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyt   display_filtered_imagee   s    c         C   s#   d  |  _ t t |   j |  d  S(   N(   R   R   R   R   t
   closeEvent(   R   t   event(    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyR7   i   s    	c         C   s   |  j  d f S(   sē   Return the overlaid image.

        Returns
        -------
        overlay : array, same shape as image
            The overlay currently displayed.
        data : None
        N(   R   R   (   R   (    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyt   outputn   s    	(   i   i    i    (   i   i   i    (   i    i   i    (   i    i   i   (   t   __name__t
   __module__t   __doc__R   R   R   t   propertyR   t   setterR   R5   R6   R7   R9   (    (    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyR      s   

	
			(   t   warningsR    t
   util.dtypeR   t   baseR   t   utilsR   R   R.   t   _shared.version_requirementsR   t   __all__R   (    (    (    sC   lib/python2.7/site-packages/skimage/viewer/plugins/overlayplugin.pyt   <module>   s   	