ó
    ñZj[  ã                   óî  • S SK JrJrJrJr  S SKrS SKrS\\R                     S\	S\	S\\R                     4S jr
S\R                  S	\\\4   S
\S\S\R                  4
S jrS\R                  S	\\\4   S\	S\	S\\R                  \\\4   4   4
S jrS\S\S\	S\	S\4
S jrS\R                  S\R                  S\R                  4S jrS\R                  S\	S\	S\\R                  \	\	4   4S jr SS\R                  S\	S\\R                  \	\	4   4S jjr S S\R                  S\	S\\R                  \	\	4   4S jjrS\R                  S\\\\\4   S\R                  4S jr " S S\5      rg)!é    )ÚAnyÚDictÚListÚTupleNÚimgsÚratio_hÚratio_wÚreturnc                 óÂ   • / nU  HV  nUR                   S S u  pV[        XQ-  5      [        Xb-  5      p‡[        R                  " XHU45      n	UR	                  U	5        MX     U$ ©Né   )ÚshapeÚroundÚcv2ÚresizeÚappend)
r   r   r	   ÚresultsÚimgÚimg_hÚimg_wÚ	ori_img_hÚ	ori_img_wÚ
resize_imgs
             ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/rapidocr/utils/process_img.pyÚmap_img_to_originalr   
   s_   € ð €GÛˆØ—y‘y  !�}‰ˆÜ$ U¡_Ó5´u¸U¹_Ó7M�9Ü—Z’Z °Ð%;Ó<ˆ
Ø�‰�zÖ"ñ	 ð
 €Nó    Údt_boxesÚ	op_recordÚori_hÚori_wc                 óh  • [        [        UR                  5       5      5       Hª  nX   nSU;   aK  UR                  S5      UR                  S5      pvU S S 2S S 2S4==   U-  ss'   U S S 2S S 2S4==   U-  ss'   MX  SU;   d  M`  UR                  S5      nUR                  S5      n	U S S 2S S 2S4==   U	-  ss'   U S S 2S S 2S4==   U-  ss'   M¬     [        R
                  " U S:  SU 5      n [        R
                  " U S	   U:„  X0S	   5      U S	'   [        R
                  " U S
   U:„  X S
   5      U S
'   U $ )NÚpaddingÚtopÚleftr   é   Ú
preprocessr   r	   ).r   ).r%   )ÚreversedÚlistÚkeysÚgetÚnpÚwhere)
r   r   r   r    ÚopÚvr#   r$   r   r	   s
             r   Úmap_boxes_to_originalr/      s%  € ô ”t˜IŸN™NÓ,Ó-Ö.ˆØ‰MˆØ˜‹?ØŸ™˜e› a§e¡e¨F£m�Ø’Qš˜1�WÓ Ñ%ÓØ’Qš˜1�WÓ Ñ$ÕØ˜RÕØ—e‘e˜IÓ&ˆGØ—e‘e˜IÓ&ˆGØ’Qš˜1�WÓ Ñ(ÓØ’Qš˜1�WÓ Ñ(Õñ /ô �xŠx˜ 1™ a¨Ó2€HÜ—x’x ¨Ñ 0°5Ñ 8¸%È&ÑAQÓR€HˆVÑÜ—x’x ¨Ñ 0°5Ñ 8¸%È&ÑAQÓR€HˆVÑØ€Or   r   Úwidth_height_ratioÚ
min_heightc                 ó¾   • U R                   S S u  pEUS:X  a  SnOXT-  U:„  nXC::  d  U(       a&  [        XEX#5      n[        XUSS45      nUSS.US'   X�4$ SSS.US'   X4$ )Nr   éÿÿÿÿFr   )r#   r$   Ú	padding_1)r   Úget_padding_hÚadd_round_letterbox)	r   r   r0   r1   ÚhÚwÚuse_limit_ratioÚ	padding_hÚ	block_imgs	            r   Úapply_vertical_paddingr<   +   s…   € ð �9‰9�R�aˆ=�D€Aà˜RÓØ‰à™%Ð"4Ñ4ˆàƒž/Ü! !Ð(:ÓGˆ	Ü'¨¸ÀAÀqÐ-IÓJˆ	Ø)2¸AÑ!>ˆ	�+ÑØÐ#Ð#à%&°Ñ2€IˆkÑØˆ>Ðr   r7   r8   c                 ól   • [        [        X-  5      U5      S-  n[        [        X@-
  5      S-  5      nU$ r   )ÚmaxÚintÚabs)r7   r8   r0   r1   Únew_hr:   s         r   r5   r5   B   s6   € Ü”�AÑ*Ó+¨ZÓ8¸1Ñ<€EÜ”C˜™	“N QÑ&Ó'€IØÐr   Úpointsc           
      ó  • [        [        [        R                  R	                  US   US   -
  5      [        R                  R	                  US   US   -
  5      5      5      n[        [        [        R                  R	                  US   US   -
  5      [        R                  R	                  US   US   -
  5      5      5      n[        R
                  " SS/US/X#/SU//5      R                  [        R                  5      n[        R                  " X5      n[        R                  " U UX#4[        R                  [        R                  S9nUR                  SS u  pxUS-  U-  S:¼  a  [        R                  " U5      nU$ )Nr   r%   r   é   )Ú
borderModeÚflagsç      ð?g      ø?)r?   r>   r+   ÚlinalgÚnormÚarrayÚastypeÚfloat32r   ÚgetPerspectiveTransformÚwarpPerspectiveÚBORDER_REPLICATEÚINTER_CUBICr   Úrot90)	r   rB   Úimg_crop_widthÚimg_crop_heightÚpts_stdÚMÚdst_imgÚdst_img_heightÚdst_img_widths	            r   Úget_rotate_crop_imagerY   H   sY  € ÜÜÜ�I‰I�N‰N˜6 !™9 v¨a¡yÑ0Ó1Ü�I‰I�N‰N˜6 !™9 v¨a¡yÑ0Ó1ó	
ó€Nô ÜÜ�I‰I�N‰N˜6 !™9 v¨a¡yÑ0Ó1Ü�I‰I�N‰N˜6 !™9 v¨a¡yÑ0Ó1ó	
ó€Oô �hŠhà�ˆFØ˜QÐØÐ-Ø�Ð ð		
ó÷ �fŒR�Z‰ZÓð ô 	×#Ò# FÓ4€AÜ×!Ò!ØØ	Ø	Ð)Ü×'Ñ'Ü�o‰oñ€Gð %,§M¡M°!°AÐ$6Ñ!€NØ˜Ñ˜mÑ+¨sÓ2Ü—(’(˜7Ó#ˆØ€Nr   Úmin_side_lenÚmax_side_lenc                 óÌ   • U R                   S S u  p4[        X45      nS=pgXR:”  a  [        X5      u  pnU R                   S S u  p4[        X45      nX�:  a  [	        X5      u  pnXU4$ )Nr   rG   )r   r>   Úreduce_max_sideÚminÚincrease_min_side)	r   rZ   r[   r7   r8   Ú	max_valuer   r	   Ú	min_values	            r   Úresize_image_within_boundsrb   k   su   € ð �9‰9�R�aˆ=�D€AÜ�A“	€IØÐ€GØÓÜ /°Ó BÑˆ�gà�9‰9�R�aˆ=�D€AÜ�A“	€IØÓÜ 1°#Ó DÑˆ�gØ˜Ð Ð r   c                 óü  • U R                   S S u  p#Sn[        X#5      U:”  a"  X#:”  a  [        U5      U-  nO[        U5      U-  n[        X$-  5      n[        X4-  5      n[        [	        US-  5      S-  5      n[        [	        US-  5      S-  5      n [        U5      S::  d  [        U5      S::  a  [        S5      e[        R                  " XU45      n X%-  nX6-  n	XU	4$ ! [         a  n[        5       UeS nAff = f©Nr   rG   é    r   z/resize_w or resize_h is less than or equal to 0)	r   r>   Úfloatr?   r   ÚResizeImgErrorr   r   Ú	Exception)
r   r[   r7   r8   ÚratioÚresize_hÚresize_wÚexcr   r	   s
             r   r]   r]   {   ó  € ð �9‰9�R�aˆ=�D€Aà€EÜ
ˆ1ƒy�<ÓØ‹5Ü˜,Ó'¨!Ñ+‰Eä˜,Ó'¨!Ñ+ˆEä�1‘9‹~€HÜ�1‘9‹~€Hä”5˜ B™Ó'¨"Ñ,Ó-€HÜ”5˜ B™Ó'¨"Ñ,Ó-€Hð(Üˆx‹=˜AÓ¤ X£°!Ó!3Ü Ð!RÓSÐSÜ�jŠj˜¨Ð2Ó3ˆð ‰l€GØ‰l€GØ˜Ð Ð øô ó (ÜÓ CÐ'ûð(úó   ÂAC! Ã!
C;Ã+C6Ã6C;c                 óü  • U R                   S S u  p#Sn[        X#5      U:  a"  X#:  a  [        U5      U-  nO[        U5      U-  n[        X$-  5      n[        X4-  5      n[        [	        US-  5      S-  5      n[        [	        US-  5      S-  5      n [        U5      S::  d  [        U5      S::  a  [        S5      e[        R                  " XU45      n X%-  nX6-  n	XU	4$ ! [         a  n[        5       UeS nAff = frd   )	r   r^   rf   r?   r   rg   r   r   rh   )
r   rZ   r7   r8   ri   rj   rk   rl   r   r	   s
             r   r_   r_   ™   rm   rn   Úpadding_tuplec           
      ón   • [         R                  " U US   US   US   US   [         R                  SS9nU$ )Nr   r%   r   rD   )r   r   r   )Úvalue)r   ÚcopyMakeBorderÚBORDER_CONSTANT)r   rp   Ú
padded_imgs      r   r6   r6   ·   sK   € ô ×#Ò#ØØ�aÑØ�aÑØ�aÑØ�aÑÜ×ÑØñ€Jð Ðr   c                   ó   • \ rS rSrSrg)rg   éÆ   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__rx   r   r   rg   rg   Æ   s   † Úr   rg   )iÐ  )é   )Útypingr   r   r   r   r   Únumpyr+   Úndarrayrf   r   Ústrr?   r/   r<   r5   rY   rb   r]   r_   r6   rh   rg   rx   r   r   Ú<module>rƒ      s  ð÷ *Ó )ã 
Û ð	Ø
ˆr�z‰zÑ
ð	Ø%*ð	Ø5:ð	à	ˆ"�*‰*Ñô	ðØ�j‰jðØ%)¨#¨s¨(¡^ðØ<?ðØHKðà‡Z�Zôð*Ø	�‰ðà�C˜�H‰~ðð ðð ð	ð
 ˆ2�:‰:�t˜C ˜H‘~Ð%Ñ&ôð.�Sð ˜Sð °eð Èð ÐSVô ð ˜rŸz™zð  °2·:±:ð  À"Ç*Á*ô  ðF!Ø	�‰ð!Ø#(ð!Ø8=ð!à
ˆ2�:‰:�u˜eÐ#Ñ$ô!ð" ,0ñ!Ø	�‰ð!Ø#(ð!à
ˆ2�:‰:�u˜eÐ#Ñ$õ!ð> ,.ñ!Ø	�‰ð!Ø#(ð!à
ˆ2�:‰:�u˜eÐ#Ñ$õ!ð<Ø	�‰ðØ$)¨#¨s°C¸Ð*<Ñ$=ðà‡Z�Zôô	�Yõ 	r   