Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/PIL/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/PIL/__pycache__/ImageStat.cpython-35.pyc



�ʴW�@sDddlZddlZddlZGdd�de�ZeZdS)�Nc@s�eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�StatNcCs�y.|r|j|�|_n|j�|_Wntk
rK||_YnXt|jt�sjtd��ttt|j�d��|_dS)Nz$first argument must be image or list�)	�	histogram�h�AttributeError�
isinstance�list�	TypeError�range�len�bands)�selfZ
image_or_list�mask�r�@/opt/alt/python35/lib64/python3.5/site-packages/PIL/ImageStat.py�__init__s
z
Stat.__init__cCsL|dd�dkr"t|��t|d|��}t|||�|S)zCalculate missing attributeN��_get)r�getattr�setattr)r
�id�vrrr�__getattr__+s
zStat.__getattr__cCs\dd�}g}xCtdt|j�d�D]&}|j||j|d���q.W|S)z-Get min/max values for each band in the imagecSsUd}d}x<td�D].}||rt||�}t||�}qW||fS)N�rr)r
�min�max)r�n�x�irrr�minmax7s
z Stat._getextrema.<locals>.minmaxrrN)r
rr�append)r
rrrrrr�_getextrema4s
	"$zStat._getextremacCs]g}xPtdt|j�d�D]3}|jtjtj|j||d���q"W|S)z(Get total number of pixels in each layerrr)r
rrr �	functools�reduce�operator�add)r
rrrrr�	_getcountEs"1zStat._getcountcCssg}xftdt|j�d�D]I}d}x-td�D]}|||j||7}q;W|j|�q"W|S)z#Get sum of all pixels in each layerrrg)r
rrr )r
rrZlayerSum�jrrr�_getsumMs"zStat._getsumcCs}g}xptdt|j�d�D]S}d}x7td�D])}||dt|j||�7}q;W|j|�q"W|S)z+Get squared sum of all pixels in each layerrrg�)r
rr�floatr )r
rr�sum2r'rrr�_getsum2Xs"'z
Stat._getsum2cCs=g}x0|jD]%}|j|j||j|�qW|S)z&Get average pixel level for each layer)rr �sum�count)r
rrrrr�_getmeancs#z
Stat._getmeancCs�g}xx|jD]m}d}|j|d}|d}x6td�D](}||j||}||krDPqDW|j|�qW|S)z%Get median pixel level for each layerrr)r)rr.r
rr )r
rr�s�l�br'rrr�
_getmedianks
zStat._getmediancCsFg}x9|jD].}|jtj|j||j|��qW|S)zGet RMS for each layer)rr �math�sqrtr+r.)r
rrrrr�_getrmszs,zStat._getrmscCsVg}xI|jD]>}|j|}|j|j||j|d||�qW|S)zGet variance for each layerg@)rr.r r+r-)r
rrrrrr�_getvar�s

/zStat._getvarcCs;g}x.|jD]#}|jtj|j|��qW|S)z%Get standard deviation for each layer)rr r4r5�var)r
rrrrr�
_getstddev�s!zStat._getstddev)�__name__�
__module__�__qualname__rrr!r&r(r,r/r3r6r7r9rrrrrs		r)r4r$r"�objectr�Globalrrrr�<module>sv