ó
î Xc           @   sE   d  d l  Z  d  d l Z d  d l m Z d d d „  ƒ  YZ e Z d S(   iÿÿÿÿN(   t   reducet   Statc           B   sn   e  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z RS(   c         C   s’   y. | r | j  | ƒ |  _ n | j  ƒ  |  _ Wn t k
 rJ | |  _ n Xt |  j t ƒ sl t d ƒ ‚ n  t t t |  j ƒ d ƒ ƒ |  _ d  S(   Ns$   first argument must be image or listi   (	   t	   histogramt   ht   AttributeErrort
   isinstancet   listt	   TypeErrort   ranget   lent   bands(   t   selft   image_or_listt   mask(    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt   __init__   s    c         C   sI   | d  d k r t  | ƒ ‚ n  t |  d | ƒ ƒ  } t |  | | ƒ | S(   s   Calculate missing attributei   t   _get(   R   t   getattrt   setattr(   R   t   idt   v(    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt   __getattr__+   s
    c         C   sS   d „  } g  } x= t  d t |  j ƒ d ƒ D]  } | j | |  j | ƒ ƒ q+ W| S(   s-   Get min/max values for each band in the imagec         S   sX   d } d } x? t  d ƒ D]1 } |  | r t | | ƒ } t | | ƒ } q q W| | f S(   Niÿ   i    i   (   R   t   mint   max(   R   t   nt   xt   i(    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt   minmax7   s    
i    i   (   R   R	   R   t   append(   R   R   R   R   (    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getextrema4   s
    		"c         C   sW   g  } xJ t  d t |  j ƒ d ƒ D]- } | j t t j |  j | | d !ƒ ƒ q" W| S(   s(   Get total number of pixels in each layeri    i   (   R   R	   R   R   R    t   operatort   add(   R   R   R   (    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt	   _getcountE   s    "+c         C   ss   g  } xf t  d t |  j ƒ d ƒ D]I } d } x- t  d ƒ D] } | | |  j | | 7} q; W| j | ƒ q" W| S(   s#   Get sum of all pixels in each layeri    i   g        (   R   R	   R   R   (   R   R   R   t   sumt   j(    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getsumM   s    "c         C   s}   g  } xp t  d t |  j ƒ d ƒ D]S } d } x7 t  d ƒ D]) } | | d t |  j | | ƒ 7} q; W| j | ƒ q" W| S(   s+   Get squared sum of all pixels in each layeri    i   g        i   (   R   R	   R   t   floatR   (   R   R   R   t   sum2R!   (    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getsum2X   s    "'c         C   s=   g  } x0 |  j  D]% } | j |  j | |  j | ƒ q W| S(   s&   Get average pixel level for each layer(   R
   R   R    t   count(   R   R   R   (    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getmeanc   s    #c         C   sˆ   g  } x{ |  j  D]p } d } |  j | d } | d } x9 t d ƒ D]+ } | |  j | | } | | k rD PqD qD W| j | ƒ q W| S(   s%   Get median pixel level for each layeri    i   i   (   R
   R&   R   R   R   (   R   R   R   t   st   lt   bR!   (    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt
   _getmediank   s    
c         C   sF   g  } x9 |  j  D]. } | j t j |  j | |  j | ƒ ƒ q W| S(   s   Get RMS for each layer(   R
   R   t   matht   sqrtR$   R&   (   R   R   R   (    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getrmsz   s    ,c         C   sV   g  } xI |  j  D]> } |  j | } | j |  j | |  j | d | | ƒ q W| S(   s   Get variance for each layerg       @(   R
   R&   R   R$   R    (   R   R   R   R   (    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getvar‚   s
    /c         C   s;   g  } x. |  j  D]# } | j t j |  j | ƒ ƒ q W| S(   s%   Get standard deviation for each layer(   R
   R   R,   R-   t   var(   R   R   R   (    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt
   _getstddev‹   s    !N(   t   __name__t
   __module__t   NoneR   R   R   R   R"   R%   R'   R+   R.   R/   R1   (    (    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyR      s   											(    (   R,   R   t	   functoolsR    R   t   Global(    (    (    s1   /usr/lib/python2.7/dist-packages/PIL/ImageStat.pyt   <module>   s   v