
    9i                     z    S SK r S SKrS SKrS SKrS SKrSS jrS rS r	S r
SS jrSS jrS rS	 rS
 rS rS rg)    Nc                     [         R                  " U 5      u  p#n[        X#5      U:  a(  X#:  a  [        X-  U-  5      Up2OU[        X-  U-  5      p2[        R
                  " XU4[        R                  S9n U $ )N)interpolation)npshapeminintcv2resize
INTER_AREA)imagesizehwcs        b/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/models/cv/cartoon/utils.pyresize_sizer      se    hhuoGA!
1y45tx!|$dqTX\*qJJu!fCNNCEL    c                     [         R                  " U 5      u  pnUS-  S:X  a  US-  S:X  a  XU4$ US-  S-   S-  US-  S-   S-  pT[         R                  " XES4[         R                  5      S-  nXS U2S U2S S 24'   XaU4$ )N   r            )r   r   onesuint8)r   r   r   r   nhnwimg_news          r   padTo16xr      s    hhuoGA!2v{q2v{{2gkR!r'A+!3ggrqk288,s2GBQBAIq=r   c                 (   [        U SS U5      n[        U SS U5      nUb  Uc/  [        S5        U SS R                  SS9nU SS R                  SS9nU S   nU S	   nU S
   nUS   US   /US   US   /US   US   /US   US   /US   US   //nU$ )N$   )   *   /   z8cannot find 5 points with find_puil, used mean instead.!r   )axis   0   6   r   )
find_pupilprintmean)	landmarksnp_imgeye_left	eye_rightnose
mouth_leftmouth_rightf5ps           r   get_f5pr3   !   s    )Br*F3H9R+V4I9,HIR#((a(0b$))q)1	R=D2JB-KQK!%	!il'CGT!W
1z!}=NKN+-C Jr   c                    UR                   u  p#n[        U S S 2S4   R                  5       5      n[        U S S 2S4   R                  5       5      n[        U S S 2S4   R                  5       5      n[        U S S 2S4   R                  5       5      nX:  d  Xe:  d  US:  d  US:  d
  Xr:  d  XS:  a  g XU2Xe2S S 24   n	[        R
                  " U	[        R                  5      n
[        R                  " U
5      n
U [        R                  " Xh/5      R                  SS/5      -
  n[        R                  " [        R                  " U
5      UR                  [        R                  5      S5      n[        R                  " U
SS[        R                   [        R"                  -  5      u  pSUS-  -
  U-  nSn/ n/ n[%        UR                   S   5       HV  n[%        UR                   S   5       H7  nUUU4   S:  d  M  UR'                  U5        UR'                  U5        US-  nM9     MX     US:w  a1  UR)                  5         UR)                  5         UUS-     nUUS-     nO$UR                   S   S-  nUR                   S   S-  nUU-   UU-   4$ )Nr   r      d   r   g     o@      ?)r   r   maxr   r	   cvtColorCOLOR_BGR2GRAYequalizeHistr   arrayreshapefillConvexPoly
zeros_likeastypeint32	thresholdTHRESH_BINARYTHRESH_OTSUrangeappendsort)r+   r,   r   r   _xmaxxminymaxymineye_img_bgreye_imgn_markseye_maskretthreshcntxmymijs                       r   r(   r(   1   s;   llGA!yA""$%DyA""$%DyA""$%DyA""$%D|t|tax4!8tx48dDIq01Kll;(:(:;Gw'G"((D<088!Q@@G!!
grxx 8!=H--c # 1 1COO CEKC&4-8+F
C	B	B6<<?#v||A'Aad|c!		!		!q	 ( $ ax
	
	q\q\\\!_q \\!_q 9b4ir   c                 $   [         R                  " S[        U 5      5      n[         R                  R	                  U5        US U n/ n[        U5       H  n[        R                  " XU      5      nUR                  u  pxn	[        R                  " SX-
  5      n
[        R                  " SXr-
  5      nXkX-   2XU-   2S S 24   nUR                  [         R                  5      S-  S-
  nUR                  U5        M     [         R                  " U5      $ )Nr        _@r   )r   arangelenrandomshufflerE   r	   imreadr   randintr@   float32rF   asarray)filename_list
batch_sizefineSizeidx
batch_datarV   r   r   r   r   rwrhs               r   
next_batchri   X   s    
))As=)
*CIIc
kz
CJ:

=Q01++a^^Aq|,^^Aq|,&=(8!;<RZZ(5014%   ::j!!r   c                 d   [         R                  R                  U 5      n[         R                  R	                  USS9n[         R                  R                  U[         R                  5      nUR                  / SQ5        [         R                  R                  X!U/S9nUSS S S24   nUS-
  S-  nU$ )	Nr   )channels)NNr   )imagesr   .r7   r5   )	tfio	read_filer   decode_imageconvert_image_dtyper`   	set_shaper
   )
image_path
IMAGE_SIZEr   s      r   
read_imagerv   i   s    EEOOJ'EHH!!%!!4EHH((

;E	OOO$HHOO5J/GOHE#tt)ES[AELr   c                     [        U 5      nU$ )N)rv   )
photo_listphotos     r   	load_datarz   v   s    z"ELr   c                     [         R                  R                  R                  U 5      nUR	                  [        U 5      5      nUR                  [        SS9nUR                  U5      nUR                  S5      nU$ )N   )num_parallel_callsr   )
rn   dataDatasetfrom_tensor_slicesr]   r[   maprz   batchprefetch)
image_listrc   datasets      r   tf_data_loaderr   {   sa    ggoo00*>Gooc*o.Gkk)k:GmmJ'Gq!GNr   c                 `   [         R                  R                  U5      (       d  [         R                  " U5        [         R                  R	                  X5      nS/U-  n[        U5       Hw  n/ XV'   [        U5       HG  nXc-  U-   nX   S-   S-  X'   [        R                  " X   SS5      X'   XV   R                  X   5        MI     [        R                  " XV   5      XV'   My     [        R                  " U5      n[        R                  " XER                  [        R                  5      5        g Nr   r   rY   r   )ospathexistsmakedirsjoinrE   r   cliprF   hstackvstackr	   imwriter@   r   )	r   save_dirnamen	fused_dirfused_imagerV   rW   ks	            r   write_batch_imager      s    77>>(##
HX,I#'K1XqA	A1-EHwwuxC0EHN!!%(+	 
 ;>2  ))K(KKK	--bhh78r   c                 J   S/U-  n[        U5       Hw  n/ X#'   [        U5       HG  nX1-  U-   nX   S-   S-  X'   [        R                  " X   SS5      X'   X#   R                  X   5        MI     [        R                  " X#   5      X#'   My     [        R
                  " U5      nU$ r   )rE   r   r   rF   r   r   )r   r   r   rV   rW   r   s         r   grid_batch_imager      s    #'K1XqA	A1-EHwwuxC0EHN!!%(+	 
 ;>2  ))K(Kr   c                 0   / n[         R                  " U 5       Hy  u  p#nU Hm  n[         R                  R                  U5      S   nUS:X  d  US:X  d  US:X  d  US:X  d  M?  UR	                  [         R                  R                  X%5      5        Mo     M{     U$ )Nr   z.pngz.jpgz.jpegz.JPG)r   walkr   splitextrF   r   )file_dirLrootdirsfilesfileextends          r   all_filer      s    
AWWX.EDWW%%d+A.F6V#3v7HFV\L\d12  /
 Hr   )i  )   )r   r\   r	   numpyr   
tensorflowrn   r   r   r3   r(   ri   rv   rz   r   r   r   r    r   r   <module>r      sN    
  
   $ N""

9$r   