zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
U
T±dèã@s.ddlZddlZddlZGdd„dƒZeZdS)éNc@sfeZdZddd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Zdd„Z    dd„Z
dd„Z dd„Z dd„Z dS)ÚStatNcCspz |r| |¡|_n
| ¡|_Wntk
r:||_YnXt|jtƒsTd}t|ƒ‚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Úmsg©rúDd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\PIL/ImageStat.pyÚ__init__s  z Stat.__init__cCs8|dd…dkrt|ƒ‚t|d|ƒƒ}t|||ƒ|S)zCalculate missing attributeNéÚ_get)rÚgetattrÚsetattr)r ÚidÚvrrrÚ __getattr__+s
 zStat.__getattr__cCs@dd„}g}tdt|jƒdƒD]}| ||j|d…ƒ¡q|S)z-Get min/max values for each band in the imagecSs:d}d}tdƒD] }||rt||ƒ}t||ƒ}q||fS)Néÿrr)r
ÚminÚmax)rÚnÚxÚirrrÚminmax7s 
 z Stat._getextrema.<locals>.minmaxrrN©r
r rÚappend)r r rrrrrÚ _getextrema4s
    zStat._getextremac
CsBg}tdt|jƒdƒD]&}| t tj|j||d…¡¡q|S)z(Get total number of pixels in each layerrr)r
r rr"Ú    functoolsÚreduceÚoperatorÚadd©r rrrrrÚ    _getcountEs$zStat._getcountcCsRg}tdt|jƒdƒD]6}d}tdƒD]}|||j||7}q&| |¡q|S)z#Get sum of all pixels in each layerrrçr!)r rrZ    layer_sumÚjrrrÚ_getsumMs  z Stat._getsumcCsZg}tdt|jƒdƒD]>}d}tdƒD]"}||dt|j||ƒ7}q&| |¡q|S)z+Get squared sum of all pixels in each layerrrr*é)r
r rÚfloatr")r rrÚsum2r+rrrÚ_getsum2Xs   z Stat._getsum2cCs.g}|jD]}| |j||j|¡q
|S)z&Get average pixel level for each layer)r r"ÚsumÚcountr(rrrÚ_getmeancs
z Stat._getmeancCsdg}|jD]T}d}|j|d}|d}tdƒD]"}||j||}||kr0qTq0| |¡q
|S)z%Get median pixel level for each layerrr-r)r r2r
rr")r rrÚsZhalfÚbr+rrrÚ
_getmedianks
  zStat._getmediancCs4g}|jD]$}| t |j||j|¡¡q
|S)zGet RMS for each layer)r r"ÚmathÚsqrtr/r2r(rrrÚ_getrmszs
"z Stat._getrmscCsDg}|jD]4}|j|}| |j||j|d||¡q
|S)zGet variance for each layerg@)r r2r"r/r1)r rrrrrrÚ_getvar‚s
 
 
(z Stat._getvarcCs*g}|jD]}| t |j|¡¡q
|S)z%Get standard deviation for each layer)r r"r7r8Úvarr(rrrÚ
_getstddev‹s
zStat._getstddev)N)Ú__name__Ú
__module__Ú __qualname__rrr#r)r,r0r3r6r9r:r<rrrrrs
          r)r$r7r&rZGlobalrrrrÚ<module>sw