ó
È4ec           @   sD   d  d l  Z  d  d l Z d  d l Z d e f d „  ƒ  YZ e Z d S(   iÿÿÿÿNt   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(    (    s7   /usr/local/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(    (    s7   /usr/local/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(    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyt   minmax6   s    
i    i   (   R   R   R   t   append(   R
   R   R   R   (    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getextrema3   s
    		"c         C   sZ   g  } xM t  d t |  j ƒ d ƒ D]0 } | j t j t j |  j | | d !ƒ ƒ q" W| S(   s(   Get total number of pixels in each layeri    i   (   R   R   R   R   t	   functoolst   reducet   operatort   add(   R
   R   R   (    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyt	   _getcountD   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   layerSumt   j(    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getsumL   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"   (    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getsum2W   s    "'c         C   s=   g  } x0 |  j  D]% } | j |  j | |  j | ƒ q W| S(   s&   Get average pixel level for each layer(   R	   R   t   sumt   count(   R
   R   R   (    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getmeanb   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   halft   bR"   (    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyt
   _getmedianj   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   (    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyt   _getrmsy   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   (    (    s7   /usr/local/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   (    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyt
   _getstddevŠ   s    !N(   t   __name__t
   __module__t   NoneR   R   R   R    R#   R&   R)   R-   R0   R1   R3   (    (    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyR       s   											(   R   R.   R   t   objectR    t   Global(    (    (    s7   /usr/local/lib/python2.7/dist-packages/PIL/ImageStat.pyt   <module>   s   v