
    %`iV/                     
   d dl Z d dlmZ d dlmZmZmZmZ d dlZ	d dl
Z
d dlmZmZmZ ddlmZ 	 d dlZn# e$ r dZY nw xY we
j        j        dedefd	            Ze
j        j        dedee         fd
            Ze
j        j        dedee         fd            Ze
j        j        dedefd            Ze
j        j        dej        dej        fd            Ze
j        j        dej        dej        fd            Ze
j        j        dej        dedej        fd            Ze
j        j        dej        dedej        fd            Z e
j        j        dej        dedej        fd            Z!e
j        j        dej        dedej        fd            Z"e
j        j        	 dAdej        dededej        fd            Z#e
j        j        	 	 dBdej        deeee         e$edf         f         deeeee         e$edf         f                  ded          dej        f
d!            Z%e
j        j        dej        d"ed#ed$ed%edej        fd&            Z&e
j        j        ej'        fdej        d'eee         ef         d(edej        fd)            Z(e
j        j        	 dCdeeeee         e$edf         f                  dej        d+e)de*e)eeeee         e$edf         f                  f         fd,            Z+e
j        j        ej,        dfdej        d-ee         d(edeeeeee         ee         f                  dej        f
d.            Z-e
j        j        ej,        d/ddfdej        d0ed(ed1ed2ee$eef                  deeeeee         ee         f                  dej        fd3            Z.e
j        j        ej/        dfdej        d4ee         d(edeeeeee         ee         f                  dej        f
d5            Z0e
j        j        dej        d6edej        fd7            Z1e
j        j        dej        dej        fd8            Z2e
j        j        dej        d9edej        fd:            Z3e
j        j        dej        d;edej        fd<            Z4e
j        j        dej        d=edej        fd>            Z5e
j        j        dej        dej        fd?            Z6e
j        j        dej        dej        fd@            Z7dS )D    N)Sequence)AnyLiteralOptionalUnion)ImageImageEnhanceImageOps   )_Image_fromarrayimgreturnc                     t           &t          | t          j        t           j        f          S t          | t          j                  S N)accimage
isinstancer   r   s    z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/torchvision/transforms/_functional_pil.py_is_pil_imager      s3    #X^<===#u{+++    c                     t          |           rHt          | d          r"t          |                                           }n| j        }| j        \  }}|||gS t          dt          |                      NgetbandsUnexpected type )r   hasattrlenr   channelssize	TypeErrortype)r   r   widthheights       r   get_dimensionsr#      sw    S )3
## 	$3<<>>**HH|Hv&%((
2tCyy22
3
33r   c                     t          |           rt          | j                  S t          dt	          |                      )Nr   )r   listr   r   r    r   s    r   get_image_sizer&   %   s=    S CH~~
2tCyy22
3
33r   c                     t          |           r8t          | d          r!t          |                                           S | j        S t          dt          |                      r   )r   r   r   r   r   r   r    r   s    r   get_image_num_channelsr(   ,   s_    S  3
## 	 s||~~&&&<
2tCyy22
3
33r   c                     t          |           st          dt          |                      |                     t          j                  S Nimg should be PIL Image. Got )r   r   r    	transposer   FLIP_LEFT_RIGHTr   s    r   hflipr.   6   E     ECS		CCDDD==.///r   c                     t          |           st          dt          |                      |                     t          j                  S r*   )r   r   r    r,   r   FLIP_TOP_BOTTOMr   s    r   vflipr2   >   r/   r   brightness_factorc                     t          |           st          dt          |                      t          j        |           }|                    |          } | S r*   )r   r   r    r	   
Brightnessenhance)r   r3   enhancers      r   adjust_brightnessr8   F   sY     ECS		CCDDD&s++H


,
-
-CJr   contrast_factorc                     t          |           st          dt          |                      t          j        |           }|                    |          } | S r*   )r   r   r    r	   Contrastr6   )r   r9   r7   s      r   adjust_contrastr<   P   sX     ECS		CCDDD$S))H


?
+
+CJr   saturation_factorc                     t          |           st          dt          |                      t          j        |           }|                    |          } | S r*   )r   r   r    r	   Colorr6   )r   r=   r7   s      r   adjust_saturationr@   Z   sY     ECS		CCDDD!#&&H


,
-
-CJr   
hue_factorc                 :   d|cxk    rdk    sn t          d| d          t          |           st          dt          |                      | j        }|dv r| S |                     d                                          \  }}}t          j        |t          j	                  }|t          j
        |d	z                                t          j	                  z  }t          |d
          }t          j        d|||f                              |          } | S )Ng      g      ?zhue_factor (z) is not in [-0.5, 0.5].r+   >   1FILHSVdtype   rF   )
ValueErrorr   r   r    modeconvertsplitnparrayuint8int32astyper   r   merge)r   rA   
input_modehsvnp_hs          r   
adjust_huerZ   d   s   J%%%%#%%%%L
LLLMMM ECS		CCDDDJ)))
kk%  &&((GAq!8ARX&&&DBHZ#%&&--bh777Ds##A
+eaAY
'
'
/
/

;
;CJr         ?gammagainc                 Z   t          |           st          dt          |                      dk     rt          d          | j        }|                     d          } fdt          d          D             dz  }|                     |          } |                     |          } | S )Nr+   r   z*Gamma should be a non-negative real numberRGBc           	      \    g | ](}t          d z  t          |dz            z            )S )go@g     o@)intpow).0eler]   r\   s     r   
<listcomp>z adjust_gamma.<locals>.<listcomp>   s9    ^^^Cn,s3;/F/FFGG^^^r         )r   r   r    rK   rL   rM   rangepoint)r   r\   r]   rU   	gamma_maps    ``  r   adjust_gammark   |   s      ECS		CCDDDqyyEFFFJ
++e

C^^^^^SXY\S]S]^^^abbI
))I

C
++j
!
!CJr   constantpadding.fillpadding_moderl   edgereflect	symmetricc                    t          |           st          dt          |                      t          |t          j        t          t          f          st          d          |6t          |t          j        t          t          f          st          d          t          |t                    st          d          t          |t                    rt          |          }t          |t                    r1t          |          dvr t          dt          |           d          t          |t                    rt          |          dk    r|d	         }|d
vrt          d          |dk    rpt          || d          }| j        dk    r?|                                 }t          j        | fd|i|}|                    |           |S t          j        | fd|i|S t          |t"                    r|x}x}x}	}
t          |t                    r't          |          dk    r|d	         x}}|d         x}	}
t          |t                    r3t          |          dk    r |d	         }|d         }	|d         }|d         }
||	||
g}t%          j        |d	           }|                                r0|\  }}}}|                     ||| j        |z
  | j        |z
  f          } t%          j        |d	          \  }}	}}
| j        dk    rp|                                 }t%          j        |           } t%          j        | |	|
f||ff|          } t7          j        |           } |                     |           | S t%          j        |           } t          | j                  dk    rt%          j        | |	|
f||fdf|          } t          | j                  dk    rt%          j        | |	|
f||ff|          } t7          j        |           S )Nr+   zGot inappropriate padding argzGot inappropriate fill argz"Got inappropriate padding_mode arg)   r      z<Padding must be an int or a 1, 2, or 4 element tuple, not a z element tupleru   r   rp   zBPadding mode should be either constant, edge, reflect or symmetricrl   rn   )namePborderr   rv   rg   )rL   )r   r   )r   r   r    r   numbersNumbertupler%   strr   rK   _parse_fillrL   
getpaletter
   expand
putpalettera   rO   minimumanycropr!   r"   maximumasarraypadr   	fromarrayshape)r   rm   rn   ro   optspaletteimagepad_left	pad_rightpad_top
pad_bottompcropping	crop_leftcrop_top
crop_rightcrop_bottoms                    r   r   r      s     ECS		CCDDDgt<== 97888
4'.%1N O O4555lC(( ><==='4   !..'5!! vc'll)&C&CtX[\cXdXdtttuuu'5!! c'lla&7&7!*GGG]^^^z!!462228s??nn&&GOC@@@4@@EW%%%Ls;;7;d;;;gs## 	B:AAHAyA7Zgu%% 	.#g,,!*;*;#*1:-Hy#*1:-Gjgu%% 	$#g,,!*;*;qzHajG
I Jw	:6Jq!$$$<<>> 	d;C8Ix[((IxZ1GVaIabccC35:a3C3C0'9j8s??nn&&G*S//C&4x6KLS_```C/#&&CNN7###Jjoosy>>Q&4x6KVTVbccCsy>>Q&4x6KLl[[Cs###r   topleftr"   r!   c                     t          |           st          dt          |                      |                     ||||z   ||z   f          S r*   )r   r   r    r   )r   r   r   r"   r!   s        r   r   r      sU      ECS		CCDDD88T3ucFl;<<<r   r   interpolationc                 *   t          |           st          dt          |                      t          |t                    rt          |          dk    st          d|           |                     t          |d d d                   |          S )Nr+   r   zGot inappropriate size arg: )r   r   r    r   r%   r   resizer|   )r   r   r   s      r   r   r      s      ECS		CCDDDtT"" ?s4yyA~~=t==>>>::eD2J''777r   	fillcolorrw   c                 L   t          |          }| d} t          | t          t          f          r|dk    rt	          | g|z            } t          | t
          t          f          rmt          |           dk    r| |z  } nEt          |           |k    r2d}t          |                    t          |           |                    t	          |           } |j	        dk    rEt          | t
          t          f          rt	          d | D                       } nt          |           } || iS )Nr   ru   z^The number of elements in 'fill' does not match the number of channels of the image ({} != {})rD   c              3   4   K   | ]}t          |          V  d S r   )ra   )rc   xs     r   	<genexpr>z_parse_fill.<locals>.<genexpr>  s(      ..AQ......r   )
r(   r   ra   floatr|   r%   r   rK   formatrL   )rn   r   rw   num_channelsmsgs        r   r~   r~      s    *#..L|$e%% ,,*:*:dVl*++$u&& t99>>,&DDYY,&&rCSZZD		<@@AAAT{{
x3dT5M** 	.......DDt99D$<r   matrixc                     t          |           st          dt          |                      | j        }t	          ||           } | j        |t          j        ||fi |S r*   )r   r   r    r   r~   	transformr   AFFINE)r   r   r   rn   output_sizer   s         r   affiner     sj      ECS		CCDDD(KtS!!D3=elFMRRTRRRr   Fangler   centerc                     t          |           st          dt          |                      t          ||           } | j        ||||fi |S r*   )r   r   r    r~   rotate)r   r   r   r   r   rn   r   s          r   r   r   /  sa      ECS		CCDDDtS!!D3:e]FFCCdCCCr   perspective_coeffsc                     t          |           st          dt          |                      t          ||           } | j        | j        t          j        ||fi |S r*   )r   r   r    r~   r   r   r   PERSPECTIVE)r   r   r   rn   r   s        r   perspectiver   @  sh      ECS		CCDDDtS!!D3=5#46H-``[_```r   num_output_channelsc                 ~   t          |           st          dt          |                      |dk    r|                     d          } nr|dk    r]|                     d          } t	          j        | t          j                  }t	          j        |||g          }t          |d          } nt          d          | S )Nr+   ru   rF   rg   rH   r_   z+num_output_channels should be either 1 or 3)
r   r   r    rM   rO   rP   rQ   dstackr   rK   )r   r   np_imgs      r   to_grayscaler   P  s     ECS		CCDDDakk#		!	!kk##RX...FFF344vu--FGGGJr   c                     t          |           st          dt          |                      t          j        |           S r*   )r   r   r    r
   invertr   s    r   r   r   b  s@     ECS		CCDDD?3r   bitsc                     t          |           st          dt          |                      t          j        | |          S r*   )r   r   r    r
   	posterize)r   r   s     r   r   r   i  sC     ECS		CCDDDc4(((r   	thresholdc                     t          |           st          dt          |                      t          j        | |          S r*   )r   r   r    r
   solarize)r   r   s     r   r   r   p  sC     ECS		CCDDDS),,,r   sharpness_factorc                     t          |           st          dt          |                      t          j        |           }|                    |          } | S r*   )r   r   r    r	   	Sharpnessr6   )r   r   r7   s      r   adjust_sharpnessr   w  sY     ECS		CCDDD%c**H


+
,
,CJr   c                     t          |           st          dt          |                      t          j        |           S r*   )r   r   r    r
   autocontrastr   s    r   r   r     sA     ECS		CCDDD %%%r   c                     t          |           st          dt          |                      t          j        |           S r*   )r   r   r    r
   equalizer   s    r   r   r     sA     ECS		CCDDDS!!!r   )r[   )r   rl   )r   )8rz   collections.abcr   typingr   r   r   r   numpyrO   torchPILr   r	   r
   utilsr   r   ImportErrorjitunusedboolr   r%   ra   r#   r&   r(   r.   r2   r   r8   r<   r@   rZ   rk   r|   r   r   BILINEARr   r}   dictr~   NEARESTr   r   BICUBICr   r   r   r   r   r   r   r    r   r   <module>r      s    $ $ $ $ $ $ 0 0 0 0 0 0 0 0 0 0 0 0      - - - - - - - - - - $ $ $ $ $ $OOOO   HHH ,s ,t , , , , 4 4S	 4 4 4 4 4 4S	 4 4 4 4 4 4 4 4 4 4 0u{ 0u{ 0 0 0 0 0u{ 0u{ 0 0 0 0 5; 5 U[      u      5; 5 U[     EK U u{    .   	  [	   *  DEHR	L$ L$	L$3S	5c?23L$ 5UU5#:->>?
@L$ DE	L$
 [L$ L$ L$ L$^ =	=	= = 	=
 = [= = = =  8 8	8
S	3
8 8 [	8 8 8 8   
5UU5#:->>?
@	  
#xeT%[%s
2CCDE
EF	   <  HL	S S	SKS S 5eXc]HUOCD
E	S
 [S S S S  (,HLD D	DD D 	D
 U38_%D 5eXc]HUOCD
ED [D D D D   HL	a a	aUa a 5eXc]HUOCD
E	a
 [a a a a ek      "             )5; )c )ek ) ) ) ) -%+ -# -%+ - - - - %+  5;     &ek &ek & & & & "%+ "%+ " " " " " "s   5 ??