
    i"                        S r SSKrS\R                  S'   SSKrSSKrSSKJr  SSK	J
r  SSKJr  \R                  " \R                  5      r\\R                  " S5      :  r " S	 S
\5      r " S S\5      r " S S5      rg)zt
This code is refer from:
https://github.com/WenmuZhou/DBNet.pytorch/blob/master/data_loader/modules/iaa_augment.py
    N1NO_ALBUMENTATIONS_UPDATE)DualTransform)
functional)versionz1.4.15c                   F   ^  \ rS rSrSU 4S jjrSS jrSS jrS rSrU =r	$ )	ImgaugLikeResize"   c                 D   > [         [        U ]  U5        Xl        X l        g N)superr	   __init__scale_rangeinterpolation)selfr   r   p	__class__s       f/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddleocr/ppocr/data/imaug/iaa_augment.pyr   ImgaugLikeResize.__init__#   s    .q1&*    c                     UR                   S S u  pE[        XB-  5      n[        XR-  5      n[        (       a!  [        R                  " XU4U R
                  S9$ [        R                  " XXpR
                  S9$ )N   )r   )shapeintIS_ALBU_NEW_VERSION
fgeometricresizer   )r   imgscaleparamsheightwidth
new_height	new_widths           r   applyImgaugLikeResize.apply)   st    		"1(
&	$$),D<N<N    Y6H6H
 	
r   c                     [         R                  " U VVVs/ s H  tpEodU-  XR-  4[        U5      -   PM     snnn5      $ s  snnnf r   )nparraytuple)r   	keypointsr   r    xyrests          r   apply_to_keypoints#ImgaugLikeResize.apply_to_keypoints7   s>    xxENOYkaT%i#eDk1YO
 	
Os    A c                 ~    [         R                  R                  U R                  S   U R                  S   5      nSU0$ )Nr      r   )r(   randomuniformr   )r   r   s     r   
get_paramsImgaugLikeResize.get_params=   s9    		!!$"2"21"5t7G7G7JKr   )r   r   ))      ?g      @r2         ?)r8   )
__name__
__module____qualname____firstlineno__r   r%   r/   r5   __static_attributes____classcell__)r   s   @r   r	   r	   "   s    +

   r   r	   c                   0    \ rS rSrS rSS jrS rS rSrg)	AugmenterBuilderC   c                     SSSS.U l         g )NHorizontalFlipVerticalFlipAffine)FliplrFlipudrE   imgaug_to_albu)r   s    r   r   AugmenterBuilder.__init__D   s     '$
r   c                    Ub  [        U5      S:X  a  g [        U[        5      (       a  U(       aG  U Vs/ s H  o0R                  USS9PM     nn[        R
                  " U[        R                  " SSS9S9$ US   n[        U5      S:  a  US   O0 nU R                  XV5      nU R                  R                  XU5      nUS:X  a  [        S0 UD6$ [        [        U5      n	U	" S0 UR                  5        V
Vs0 s H  u  pXR                  U5      _M     snn
D6$ [        U[        5      (       a  US	   nUR                  S
0 5      nU R                  XV5      nU R                  R                  XU5      nUS:X  a  [        S0 UD6$ [        [        U5      n	U	" S0 UR                  5        V
Vs0 s H  u  pXR                  U5      _M     snn
D6$ [        S[!        U5      -   5      es  snf s  snn
f s  snn
f )Nr   F)rootxy)formatremove_invisible)keypoint_paramsr2   ResizetypeargszUnknown augmenter arg:  )len
isinstancelistbuildAComposeKeypointParamsmap_argumentsrI   getr	   getattritemsto_tuple_if_listdictRuntimeErrorstr)r   rS   rL   valuesequenceaugmenter_typeaugmenter_argsaugmenter_args_mappedaugmenter_type_mappedclskvs               r   rX   AugmenterBuilder.buildN   s   <3t9>d##GKLteJJu5J9tLyy$%$4$4#e%  "&a,/IMar(,(:(:")% )-(;(;(?(?")% )H4+D.CDD!!%:;C  )>(C(C(E(E 44Q77(E  d##!&\N!XXfb1N$($6$6~$V!$($7$7$;$;%! %0'@*?@@a!67  %:$?$?$A$ADA 0033$A  83t9DEE] M,$s   G#6G()G.c                 
   UR                  5       nUS:X  aa  UR                  S5      nU(       aC  [        U[        [        45      (       a  [        U5      S:w  a  [        SU 35      eUu  pEXE4SSS.$ SSSS.$ US	:X  ao  UR                  S
S5      n[        U[        5      (       a  [	        U5      nO1[        U[        [        45      (       a  [        U5      [        U5      4nXbS
'   SUS'   U$ UR                  SS5      nXrS'   U$ )NrQ   sizer   z7'size' must be a list or tuple of two numbers, but got r2   r8   )r   r   r   )r8   r8   rE   rotater   r   )	copyr]   rV   rW   r*   rU   
ValueErrorr   float)r   rf   rg   ro   	min_scale	max_scalerp   r   s           r   r\   AugmenterBuilder.map_arguments   s   ',,.X%!%%f-D!$u66#d)q.$QRVQWX  (,$	$-#9%&  (2ACPPx'#''!4F&$''vFS%L11-v7'-8$"%N3!! ""3,A"#3!!r   c                 F    [        U[        5      (       a  [        U5      $ U$ r   )rV   rW   r*   )r   objs     r   r`   !AugmenterBuilder.to_tuple_if_list   s    c4  :
r   rH   N)T)	r9   r:   r;   r<   r   rX   r\   r`   r=   rT   r   r   r@   r@   C   s    
4Fn "Fr   r@   c                   $    \ rS rSrSS jrS rSrg)
IaaAugment   Nc                 v    Uc  SSS0S.SSSS/0S.S	S
SS/0S./n[        5       R                  U5      U l        g )NrF   r   r7   )rR   rS   rE   rp   i
   rQ   ro      )r@   rX   	augmenter)r   rg   kwargss      r   r   IaaAugment.__init__   sV    ! "C:6!HsBi+@A!FS!H+=>N
 *+11.Ar   c                    US   nU R                   (       a  / n/ nUS    HH  nUR                  U Vs/ s H  n[        U5      PM     sn5        UR                  [	        U5      5        MJ     U R                  X#S9nUS   US'   US   n/ n	Sn
U HE  nXX-    nU	R                  [
        R                  " U Vs/ s H  oS S PM	     sn5      5        X-  n
MG     [
        R                  " U	5      US'   U$ s  snf s  snf )Nimagepolys)r   r+   r+   r   r   )r   extendr*   appendrU   r(   r)   )r   datar   r+   keypoints_lengthspolypointtransformedtransformed_keypoints	new_polysidxlengthnew_polykps                 r   __call__IaaAugment.__call__   s   W>>I "W  D!AD5%,D!AB!((T3 &
 ..u.JK'0DM %0$<! IC+0s|D  H*EHbbq6H*E!FG , HHY/DM% "B +Fs   C2
6C7)r   r   )r9   r:   r;   r<   r   r   r=   rT   r   r   r{   r{      s    Br   r{   )__doc__osenvironnumpyr(   albumentationsrY   (albumentations.core.transforms_interfacer   &albumentations.augmentations.geometricr   r   	packagingr   parse__version__ALBU_VERSIONr   r	   objectr@   r{   rT   r   r   <module>r      s{    
 *-

% &   B K }}Q]]+"gmmH&==  }  Bhv hX& &r   