
    i                     &   S SK r S SKr\ R                  R                  \ R                  R	                  \5      5      r\R                  R                  \5        \R                  R                  \ R                  R	                  \ R                  R                  \S5      5      5        S SK	J
r
  \
" 5       rS SKrS SKrS SKrS SKJr  S SKJr  S SKJrJrJr  S SKJr  S SKJr  S SKrS SKrS SKrS	 rS
 r S r!S r"S r#\$S:X  a  \#" 5       r%\"" \%5        gg)    Nz..)
get_logger)Image)get_image_file_list)draw_ocr
draw_boxesstr2bool)draw_structure_result)to_excelc                 L    [         R                  " U 5      R                  S5      $ )Nutf8)base64	b64encodedecode)images    _/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddleocr/tools/test_hubserving.pycv2_to_base64r   '   s    E"))&11    c           	         [         R                  " U 5      n[        R                  " [         R                  " U[         R
                  5      5      n[        U5      S:X  a  [        R                  " U5      $ US   R                  5       nSU;  a  [        R                  S5        g SU;  ak  [        R                  S5        / n[        [        U5      5       H  nUR                  X   S   5        M     [        R                  " U5      n[        X55      nU$ [        R                  S5        / n/ n/ n	[        [        U5      5       HE  nUR                  X   S   5        UR                  X   S   5        U	R                  X   S   5        MG     [        R                  " U5      n[        R                  " U	5      n	[        X5XSS	S
9nU$ )Nr   text_regionz%draw function is invalid for ocr_rec!textzdraw text boxes only!zdraw boxes and texts!
confidenceTg      ?)draw_txt
drop_score)cv2imreadr   	fromarraycvtColorCOLOR_BGR2RGBlennparraykeysloggerinforangeappendr   r   )

image_fileresimgr   r"   boxesdnodraw_imgtextsscoress
             r   draw_server_resultr/   +   sd   
**Z
 COOCLLc.?.?@AE
3x1}xxq6;;=DD ;<	t	+,S?CLL-01 #e++,S?CLL-01LL&)*MM#(<01 # &!E%$SVWr   c           
      r   [         R                  " U5      n[        R                  R	                  U[        R                  R                  U5      5      n[        R                  " USS9  [        [        R                  R	                  US5      SSS9 nU  GH  nUS   S:X  aC  [        R                  R	                  US	R                  US
   5      5      n[        US   U5        MP  US   S:X  al  US
   u  pp[        US
   5        X9U2X2S S 24   n[        R                  R	                  USR                  US
   5      5      n[         R                  " X5        M  US    H7  nUR                  SR                  [        R                  " U5      5      5        M9     GM     S S S 5        g ! , (       d  f       g = f)NT)exist_okzres.txtwr   )encodingtypeTablez{}.xlsxbboxr(   Figurez{}.jpgz{}
)r   r   ospathjoinbasenamemakedirsopenformatr
   printimwritewritejsondumps)r(   save_folderr'   r)   excel_save_folderfregion
excel_pathx1y1x2y2roi_imgimg_pathtext_results                  r   save_structure_resrP   K   sR   
**Z
 C["''2B2B:2NOKK!D1	bggll,i8#	OSTFf~(WW\\%y'7'7v'G
 
38+!'fVn%eRUAo.77<<%xvf~'F H.#)%=KGGFMM$**[*ABC $1  
P	O	Os   DF((
F6c                    [        U R                  5      nSnSS0nSnSnU GH  n[        US5      R                  5       nUc&  [        R                  SR                  U5      5        MG  [        R                  R                  U5      n[        R                  " 5       n	S[        U5      /0n
[        R                  " U R                  U[        R                   " U
5      S9n[        R                  " 5       U	-
  nX\-  n[        R                  S	Xl4-  5        UR                  5       S
   S   n[        R                  U5        U R"                  (       Ga  S nSU R                  ;   a  [%        US   SR                  U5      5        O6SU R                  ;   a  ['        US   U R(                  U5        O[+        Xm5      nUGb   [        R                  R-                  U R(                  5      (       d   [        R.                  " U R(                  5        [0        R2                  " [        R                  R5                  U R(                  [        R                  R                  U5      5      US S 2S S 2S S S24   5        [        R                  SR                  [        R                  R5                  U R(                  [        R                  R                  U5      5      5      5        US-  nUS-  S:X  d  GM  [        R                  SR                  U5      5        GM     [        R                  SR                  [7        U5      U-  5      5        g )NFzContent-typezapplication/jsonr   rbzerror in loading image:{}images)urlheadersdatazPredict time of %s: %.3fsresultsstructure_tablehtmlz	./{}.xlsxstructure_systemregionsz The visualized image saved in {}   d   z{} processedzavg time cost: {})r   	image_dirr=   readr#   r$   r>   r8   r9   r;   timer   requestspost
server_urlrB   rC   	visualizer
   rP   outputr/   existsr<   r   r@   r:   float)argsimage_file_listis_visualizerU   cnt
total_timer'   r)   img_name	starttimerV   relapser(   r,   s                  r   mainrr   d   si   )$..9OL12G
CJ%
:t$))+;KK3:::FG77##J/IIK	=-./MMdoowTZZPTEUVy(
/:2FFGffhy!!$C>>>H DOO3Vk&8&8&BC#t6"3y>4;;
K-j>#ww~~dkk22KK,GGLLbgg.>.>z.JKQ4R4Z( 6==T[["''2B2B:2NO
 	q9>KK--c23M &N KK#**5+<s+BCDr   c                      SS K n U R                  SS9nUR                  S[        SS9  UR                  S[        SS9  UR                  S[        S	S
9  UR                  S[        SS
9  UR                  5       nU$ )Nr   zargs for hub serving)descriptionz--server_urlT)r4   requiredz--image_dirz--visualizeF)r4   defaultz--outputz./hubserving_result)argparseArgumentParseradd_argumentstrr   
parse_args)rw   parserri   s      r   r{   r{      s    $$1G$HF
S4@
C$?
HeD

6KLDKr   __main__)&r8   sysr9   dirnameabspath__file____dir__r&   r:   ppocr.utils.loggingr   r#   r   numpyr    ra   PILr   ppocr.utils.utilityr   tools.infer.utilityr   r   r   ppstructure.utilityr	   ppstructure.predict_systemr
   rb   rB   r   r   r/   rP   rr   r{   __name__ri    r   r   <module>r      s    
 

''//"''//(3
4   Wd ;< = *	 
    3 > > 5 /   2@D2-E`	 z<DJ r   