
    thT                     <    d dl Z d dlZd dlZ G d d          ZeZdS )    Nc                   R    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd ZdS )StatNc                 f   	 |r|                     |          | _        n|                                 | _        n# t          $ r
 || _        Y nw xY wt          | j        t                    sd}t          |          t	          t          t          | j                  dz                      | _        d S )Nz$first argument must be image or list   )		histogramhAttributeError
isinstancelist	TypeErrorrangelenbands)selfimage_or_listmaskmsgs       a/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.11/site-packages/PIL/ImageStat.py__init__zStat.__init__   s    	# 3&0066&0022 	# 	# 	#"DFFF	#$&$'' 	!8CC.. %DFs 23344


s   69 AAc                     |dd         dk    rt          |           t          | d|z                         }t          | ||           |S )zCalculate missing attributeN   _get)r	   getattrsetattr)r   idvs      r   __getattr__zStat.__getattr__+   sU    bqb6V $$$&GD&2+&&((b!    c                     d }g }t          dt          | j                  d          D ]-}|                     || j        |d                              .|S )z-Get min/max values for each band in the imagec                     d}d}t          d          D ]*}| |         r t          ||          }t          ||          }+||fS )N   r   r   )r   minmax)r   nxis       r   minmaxz Stat._getextrema.<locals>.minmax7   sQ    AA3ZZ " "Q< "Aq		AAq		Aa4Kr   r   r   Nr   r   r   append)r   r'   r   r&   s       r   _getextremazStat._getextrema4   si    	 	 	 q#df++s++ 	) 	)AHHVVDF122J''((((r   c           
          g }t          dt          | j                  d          D ]D}|                    t	          j        t          j        | j        ||dz                                 E|S )z(Get total number of pixels in each layerr   r   )r   r   r   r)   	functoolsreduceoperatoraddr   r   r&   s      r   	_getcountzStat._getcountE   sf     q#df++s++ 	J 	JAHHY%hlDF1q3w;4GHHIIIIr   c                     g }t          dt          | j                  d          D ]A}d}t          d          D ]}||| j        ||z            z  z  }|                    |           B|S )z#Get sum of all pixels in each layerr   r           r(   )r   r   r&   	layer_sumjs        r   _getsumzStat._getsumM   s{     q#df++s++ 	  	 AI3ZZ / /QA..		HHYr   c           	          g }t          dt          | j                  d          D ]Q}d}t          d          D ](}||dz  t          | j        ||z                      z  z  })|                    |           R|S )z+Get squared sum of all pixels in each layerr   r   r3      )r   r   r   floatr)   )r   r   r&   sum2r5   s        r   _getsum2zStat._getsum2X   s     q#df++s++ 	 	AD3ZZ 6 6Atva!e}!5!555HHTNNNNr   c                 z    g }| j         D ]0}|                    | j        |         | j        |         z             1|S )z&Get average pixel level for each layer)r   r)   sumcountr0   s      r   _getmeanzStat._getmeanc   sE      	2 	2AHHTXa[4:a=01111r   c                     g }| j         D ][}d}| j        |         dz  }|dz  }t          d          D ]}|| j        ||z            z   }||k    r n|                    |           \|S )z%Get median pixel level for each layerr   r8   r   )r   r>   r   r   r)   )r   r   r&   shalfbr5   s          r   
_getmedianzStat._getmediank   s      	 	AA:a=A%DCA3ZZ  q1u%t88E HHQKKKKr   c                     g }| j         D ]B}|                    t          j        | j        |         | j        |         z                       C|S )zGet RMS for each layer)r   r)   mathsqrtr:   r>   r0   s      r   _getrmszStat._getrmsz   sO      	> 	>AHHTYty|djm;<<====r   c                     g }| j         D ]F}| j        |         }|                    | j        |         | j        |         dz  |z  z
  |z             G|S )zGet variance for each layerg       @)r   r>   r)   r:   r=   )r   r   r&   r$   s       r   _getvarzStat._getvar   sa      	D 	DA
1AHHdildhqkS&8A%==BCCCCr   c                     g }| j         D ]4}|                    t          j        | j        |                              5|S )z%Get standard deviation for each layer)r   r)   rF   rG   varr0   s      r   
_getstddevzStat._getstddev   sD      	- 	-AHHTYtx{++,,,,r   )N)__name__
__module____qualname__r   r   r*   r1   r6   r;   r?   rD   rH   rJ   rM    r   r   r   r      s        5 5 5 5    "  	 	 		 	 	            r   r   )r,   rF   r.   r   GlobalrQ   r   r   <module>rS      sa   0      t t t t t t t tn 
r   