ó
    ˆ*£ho%  ã                   óZ   • S r SSKrSSKrSSKrSSKJr   S r S	S jrS r	S
S jr
SS jrg)z4
Copyright (c) 2019-present NAVER Corp.
MIT License
é    N)Úlabelc                 ó”   • [         R                  " XS   US   S45      n[         R                  " US   US   -  US   US   -  /5      $ )Nr   é   é   )ÚnpÚmatmulÚarray)ÚMinvÚptÚouts      ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/easyocr/craft_utils.pyÚ	warpCoordr      sK   € Ü
�)Š)�D˜a™5 " Q¡%¨Ð+Ó
,€CÜ�8Š8�S˜‘V˜C ™F‘] C¨¡F¨3¨q©6¡MÐ2Ó3Ð3ó    c           
      ó‚	  • UR                  5       nU R                  5       n U R                  u  pg [        R                  " XSS5      u  p‰[        R                  " XSS5      u  pŠ[        R
                  " Xš-   SS5      n[        R                  " UR                  [        R                  5      SS9u  pÍpï/ n/ n[        SU5       GHô  nUU[        R                  4   nUS:  a  M!  [        R                  " XU:H     5      U:  a  MB  [        R                  " U R                  [        R                  S9nSUUU:H  '   U(       aD  [        R                  " X-
  U-  S-  USS5      u  nn[        U5      u  nnUR                  U5        OUR                  U5        SU[        R                  " U
S:H  U	S:H  5      '   UU[        R                   4   UU[        R"                  4   nnUU[        R$                  4   UU[        R&                  4   nn[)        [*        R,                  " U[/        UU5      -  UU-  -  5      S	-  5      nUU-
  UU-   U-   S-   UU-
  UU-   U-   S-   4u  nnnn US:  a  SnUS:  a  SnUU:¼  a  UnU U:¼  a  Un [        R0                  " [        R2                  SU-   SU-   45      n![        R4                  " UUU 2UU24   U!5      UUU 2UU24'   [        R6                  " [        R8                  " [        R:                  " US:g  5      5      SSS
9R=                  5       R?                  SS	5      n"[        R@                  " U"5      n#[        RB                  " U#5      n$[        RD                  RG                  U$S   U$S   -
  5      [        RD                  RG                  U$S   U$S	   -
  5      nn[        UU5      [/        UU5      S-   -  n%[I        SU%-
  5      S::  aw  [/        U"S S 2S4   5      [        U"S S 2S4   5      n'n&[/        U"S S 2S4   5      [        U"S S 2S4   5      n)n([        R8                  " U&U(/U'U(/U'U)/U&U)//[        RJ                  S9n$U$RM                  SS
9RO                  5       n*[        R6                  " U$SU*-
  S5      n$[        R8                  " U$5      n$UR                  U$5        GM÷     UUU4$ )Nr   r   é   )Úconnectivityé
   ©Údtypeéÿ   g     ào@r   )Úaxiséÿÿÿÿgñhãˆµøä>gš™™™™™¹?)(ÚcopyÚshapeÚcv2Ú	thresholdr   ÚclipÚconnectedComponentsWithStatsÚastypeÚuint8ÚrangeÚCC_STAT_AREAÚmaxÚzerosr   ÚappendÚlogical_andÚCC_STAT_LEFTÚCC_STAT_TOPÚCC_STAT_WIDTHÚCC_STAT_HEIGHTÚintÚmathÚsqrtÚminÚgetStructuringElementÚ
MORPH_RECTÚdilateÚrollr	   ÚwhereÚ	transposeÚreshapeÚminAreaRectÚ	boxPointsÚlinalgÚnormÚabsÚfloat32ÚsumÚargmin)+ÚtextmapÚlinkmapÚtext_thresholdÚlink_thresholdÚlow_textÚestimate_num_charsÚimg_hÚimg_wÚretÚ
text_scoreÚ
link_scoreÚtext_score_combÚnLabelsÚlabelsÚstatsÚ	centroidsÚdetÚmapperÚkÚsizeÚsegmapÚ_Úcharacter_locsÚn_charsÚxÚyÚwÚhÚniterÚsxÚexÚsyÚeyÚkernelÚnp_contoursÚ	rectangleÚboxÚ	box_ratioÚlÚrÚtÚbÚstartidxs+                                              r   ÚgetDetBoxes_coreri      sF  € à�l‰l‹n€GØ�l‰l‹n€GØ—=‘=�L€EàÜ—m’m G°q¸!Ó<�O€CÜ—m’m G¸QÀÓB�O€Cä—g’g˜jÑ5°q¸!Ó<€OÜ(+×(HÒ(HÈ×I_ÑI_Ô`b×`hÑ`hÓIiÐxyÑ(zÑ%€G�Uà
€CØ€FÜ�1�W×ˆà�Qœ×(Ñ(Ð(Ñ)ˆØ�"‹9‘hô �6Š6�' !™)Ñ$Ó%¨Ó6¹ô —’˜'Ÿ-™-¬r¯x©xÑ8ˆØˆˆv�q‰yÑÞÜ #§¢¨wÑ/@ÀFÑ.JÈDÑ.PÐR`ÐbcÐefÓ gÑˆAˆ~Ü˜~Ó.‰JˆAˆwØ�M‰M˜'Õ"à�M‰M˜!ÔØ?@ˆŒr�~Š~˜j¨!™m¨Z¸©]Ó;Ñ<Ø�Qœ×(Ñ(Ð(Ñ)¨5°´C·O±OÐ1CÑ+Dˆ1ˆØ�Qœ×)Ñ)Ð)Ñ*¨E°!´S×5GÑ5GÐ2GÑ,Hˆ1ˆÜ”D—I’I˜d¤S¨¨A£YÑ.°!°a±%Ñ8Ó9¸AÑ=Ó>ˆØ˜U™ A¨¡E¨E¡M°AÑ$5°q¸5±yÀ!ÀaÁ%È%Á-ÐRSÑBSÐS‰ˆˆB��Bà�‹6˜�BØ�‹6˜�BØ�‹;˜U˜Ø�‹;˜U˜Ü×*Ò*¬3¯>©>¸1¸u¹9ÀaÈ%ÁiÐ:PÓQˆÜ"Ÿzšz¨&°°B°¸¸2¸°Ñ*>ÀÓGˆˆr�"ˆu�b˜�eˆ|Ñô —g’gœbŸhšh¤r§x¢x°¸±	Ó':Ó;¸AÀ1ÑE×OÑOÓQ×YÑYÐZ\Ð]^Ó_ˆÜ—O’O KÓ0ˆ	Ü�mŠm˜IÓ&ˆô �y‰y�~‰~˜c !™f s¨1¡v™oÓ.´·	±	·±¸sÀ1¹vÈÈAÉ¹Ó0Oˆ1ˆÜ˜˜1“I¤ Q¨£¨TÑ!1Ñ2ˆ	Üˆq�9‰}Ó Ó$Ü�{¢1 Q 3Ñ'Ó(¬#¨kº!¸A¸#Ñ.>Ó*?ˆqˆAÜ�{¢1 Q 3Ñ'Ó(¬#¨kº!¸A¸#Ñ.>Ó*?ˆqˆAÜ—(’(˜Q ˜F Q¨ F¨Q°¨F°Q¸°FÐ;Ä2Ç:Á:ÑNˆCð —7‘7 �7�?×)Ñ)Ó+ˆÜ�gŠg�c˜1˜X™: qÓ)ˆÜ�hŠh�s‹mˆà�
‰
�3�ña ðd �˜ÐÐr   c                 óJ  • SnSnSnSnSn/ n	[        U 5       GHì  u  p«[        [        R                  R	                  US   US   -
  5      S-   5      [        [        R                  R	                  US   US   -
  5      S-   5      pÜUS	:  d  US	:  a  U	R                  S 5        MŒ  [        R                  " SS/US/XÍ/SU//5      n[        R                  " X¾5      n[        R                  " XXÍ4[        R                  S
9n [        R                  R                  U5      nX*   nSUUU:g  '   SUUS:„  '    / nSn[        U5       Hi  n[        R                  " US S 2U4   S:g  5      S   n[        U5      S:  a  M7  UR                  UUS   US   45        US   US   -
  S-   nUU:”  d  Mg  UnMk     XÕ-  U:  a  U	R                  S 5        GMµ  US-  S-   nUU-  nS /U-  nSS//U-  nS/U-  nSnSnSn[        S[        U5      5       Hµ  nUU   u  n n!n"US-   U-  U ::  a0  UU::  a*  US:X  a    O“UU   S   U-  UU   S   U-  /UU'   SnUS-  nSnU!U"-   S-  n#U"U!-
  S-   n$UU   S   U -   UU   S   U#-   /UU'   US-  nUS-  S:X  a  M�  UU$:  d  M‰  U U#4U[        US-
  S-  5      '   U$U[        US-
  S-  5      '   U$nM·     US:w  a  US   S   U-  US   S   U-  /US'   S U;   d  U[        R                  " U5      S-  :  a  U	R                  S 5        GM   [        R                   " U5      U-  S-  n%/ n&[        U5       HË  u  nu  n n#UUS-  S-      S   UUS-     S   -
  n'UUS-  S-      S   UUS-     S   -
  n(U'S:X  a  U&R                  U U#U%-
  U U#U%-   /5        M`  ["        R$                  " U(U'5      * n)U%["        R&                  " U)5      -  U%["        R(                  " U)5      -  n+n*U&R                  U U+-
  U#U*-
  U U+-   U#U*-   /5        MÍ     Su  n,n-US   S   US   S   -
  US   S   US   S   -
  -  US   S   US   S   -
  US   S   US   S   -
  -  -   n.US   S   US   S   -
  US   S   US   S   -
  -  US   S   US   S   -
  US   S   US   S   -
  -  -   n/[        R*                  " SXx5       GH  n0SU%-  U0-  n'U,(       dñ  [        R,                  " UR.                  [        R0                  S9n1U.U'-  n([        R2                  " U&S   5      [        R2                  " U'U(U'U(/5      -
  n2[        R4                  " U1[        U2S   5      [        U2S   5      4[        U2S   5      [        U2S   5      4SSS9  [        R6                  " [        R8                  " UU15      5      S:X  d  U0SU-  -   U:¼  a  U2n3Sn,U-(       dñ  [        R,                  " UR.                  [        R0                  S9n1U/U'-  n([        R2                  " U&S   5      [        R2                  " U'U(U'U(/5      -   n2[        R4                  " U1[        U2S   5      [        U2S   5      4[        U2S   5      [        U2S   5      4SSS9  [        R6                  " [        R8                  " UU15      5      S:X  d  U0SU-  -   U:¼  a  U2n4Sn-U,(       d  GM  U-(       d  GM    O   U,(       a  U-(       d  U	R                  S 5        GMØ  / n5U5R                  [;        UW3S   U3S   45      5        U& H&  n2U5R                  [;        UU2S   U2S   45      5        M(     U5R                  [;        UW4S   U4S   45      5        U5R                  [;        UU4S   U4S   45      5        [=        U&5       H&  n2U5R                  [;        UU2S   U2S   45      5        M(     U5R                  [;        UU3S   U3S   45      5        U	R                  [        R2                  " U55      5        GMï     U	$ !   U	R                  S 5         GM
  = f)Né   gffffffæ?g333333÷?g       @gš™™™™™É?r   r   r   r   )Úflagsr   g      à?g      Ð?©FFéþÿÿÿéýÿÿÿr   é   )Ú	thicknessT)Ú	enumerater+   r   r8   r9   r%   r;   r   ÚgetPerspectiveTransformÚwarpPerspectiveÚINTER_NEARESTÚinvr!   r3   Úlenr#   Úmedianr,   Úatan2ÚcosÚsinÚaranger$   r   r    r	   Úliner<   r&   r   Úreversed)6ÚboxesrK   rO   r?   Únum_cpÚmax_len_ratioÚexpand_ratioÚmax_rÚstep_rÚpolysrP   rb   rX   rY   ÚtarÚMÚ
word_labelr
   Ú	cur_labelÚcpÚmax_lenÚiÚregionÚlengthÚtot_segÚseg_wÚppÚ
cp_sectionÚ
seg_heightÚseg_numÚnum_secÚprev_hrV   r]   r^   ÚcyÚcur_hÚhalf_char_hÚnew_ppÚdxÚdyÚradÚcÚsÚ
isSppFoundÚ
isEppFoundÚgrad_sÚgrad_ere   Úline_imgÚpÚsppÚeppÚpolys6                                                         r   ÚgetPoly_corer©   W   sŽ  € à€FØ€MØ€LØ€EØ€Fà€EÜ˜E×"‰ˆä”2—9‘9—>‘> # a¡&¨3¨q©6¡/Ó2°QÑ6Ó7¼¼R¿Y¹Y¿^¹^ÈCÐPQÉFÐUXÐYZÑU[ÉOÓ=\Ð_`Ñ=`Ó9aˆ1Øˆr‹6�Q˜“VØ�L‰L˜Ô¡ô �jŠj˜1˜Q˜%  1  q e¨Q¨q¨EÐ2Ó3ˆÜ×'Ò'¨Ó1ˆÜ×(Ò(¨°Q°FÄ#×BSÑBSÑTˆ
ð	)Ü—9‘9—=‘= Ó#ˆDð
 ‘Iˆ	Ø./ˆ
�: Ñ*Ñ+Ø%&ˆ
�: ‘>Ñ"à"àˆØˆÜ�q–ˆAÜ—X’X˜jª¨1¨™o°Ñ2Ó3°AÑ6ˆFÜ�6‹{˜Q‹¡Ø�I‰I�q˜& ™) V¨B¡ZÐ0Ô1Ø˜B‘Z &¨¡)Ñ+¨aÑ/ˆFØ˜Õ¨6¢ñ ð Ñ˜wÓ&Ø�L‰L˜Ô¢ð ˜1‘*˜q‘.ˆØ�G‘ˆØˆV�f‰_ˆØ˜!�f�X Ñ'ˆ
Ø�S˜6‘\ˆ
ØˆØˆØˆÜ�qœ˜R›Ö!ˆAØ˜Q™%‰KˆQ��BØ˜!‘˜uÑ$¨Ó)¨g¸Ó.@à˜a“<¡Ø'1°'Ñ':¸1Ñ'=ÀÑ'GÈÐT[ÑI\Ð]^ÑI_ÐbiÑIiÐ&j�
˜7Ñ#Ø�ð ˜1‘�Ø�ð �r‘'˜S‘ˆBØ˜‘G˜a‘KˆEØ#-¨gÑ#6°qÑ#9¸AÑ#=¸zÈ'Ñ?RÐSTÑ?UÐXZÑ?ZÐ"[ˆJ�wÑØ�q‰LˆGà˜‰{˜aÓ¡à˜�~Ø,-¨r¨7�”3˜ !™ Q‘Ó'Ñ(Ø38�
œ3 ¨!¡¨Q™Ó/Ñ0Ø’ñ/ "ð4 �a‹<Ø(¨™n¨QÑ/°'Ñ9¸:Àb¹>È!Ñ;LÈwÑ;VÐWˆJ�r‰Nð �2‹:˜¤§¢¨
Ó!3°dÑ!:Ó:Ø�L‰L˜Ô¢ô —i’i 
Ó+¨lÑ:¸QÑ>ˆð ˆÜ# Bž-‰JˆA‰w��2Ø˜A ™E A™IÑ& qÑ)¨J°q¸1±uÑ,=¸aÑ,@Ñ@ˆBØ˜A ™E A™IÑ& qÑ)¨J°q¸1±uÑ,=¸aÑ,@Ñ@ˆBØ�Q‹wØ—‘˜q " {Ñ"2°A°r¸KÑ7GÐHÔIÙÜ—J’J˜r 2Ó&Ð&ˆCØ¤§¢¨#£Ñ.°¼d¿hºhÀs»mÑ0KˆqˆAØ�M‰M˜1˜q™5 " q¡&¨!¨a©%°°a±Ð8Ö9ñ (ð ".Ñˆ
�JØ�Q‘%˜‘(˜R ™U 1™XÑ%¨"¨Q©%°©(°R¸±U¸1±XÑ*=Ñ>À"ÀQÁ%ÈÁ(ÈRÐPQÉUÐSTÉXÑBUÐZ\Ð]^ÑZ_Ð`aÑZbÐegÐhiÑejÐklÑemÑZmÑAnÑnˆØ�R‘&˜‘)˜b ™f Q™iÑ'¨B¨r©F°1©I¸¸2¹¸q¹	Ñ,AÑBÀbÈÁfÈQÁiÐRTÐUWÑRXÐYZÑR[ÑF[Ð`bÐceÑ`fÐghÑ`iÐlnÐoqÑlrÐstÑluÑ`uÑEvÑvˆÜ—’˜3 ×.ˆAØ�[‘ 1Ñ$ˆBÞÜŸ8š8 J×$4Ñ$4¼B¿H¹HÑE�Ø˜b‘[�Ü—H’H˜V A™YÓ'¬"¯(ª(°B¸¸BÀÐ3CÓ*DÑD�Ü—’˜¤C¨¨!©£I¬s°1°Q±4«yÐ#9¼CÀÀ!Á»IÄsÈ1ÈQÉ4ÃyÐ;QÐSTÐ`aÒbÜ—6’6œ"Ÿ.š.¨°XÓ>Ó?À1ÓDÈÈAÐPVÉJÉÐZ_ÓH_Ø�CØ!%�JÞÜŸ8š8 J×$4Ñ$4¼B¿H¹HÑE�Ø˜b‘[�Ü—H’H˜V B™ZÓ(¬2¯8ª8°R¸¸RÀÐ4DÓ+EÑE�Ü—’˜¤C¨¨!©£I¬s°1°Q±4«yÐ#9¼CÀÀ!Á»IÄsÈ1ÈQÉ4ÃyÐ;QÐSTÐ`aÒbÜ—6’6œ"Ÿ.š.¨°XÓ>Ó?À1ÓDÈÈAÐPVÉJÉÐZ_ÓH_Ø�CØ!%�Jß‰zŸj™jÙñ' /ö, žzØ�L‰L˜Ô¢ð ˆØ�‰”I˜d S¨¡V¨S°©VÐ$4Ó5Ô6ÛˆAØ�K‰Kœ	 $¨¨1©¨q°©t¨Ó5Ö6ñ à�‰”I˜d S¨¡V¨S°©VÐ$4Ó5Ô6Ø�‰”I˜d S¨¡V¨S°©VÐ$4Ó5Ô6Ü˜&Ö!ˆAØ�K‰Kœ	 $¨¨1©¨q°©t¨Ó5Ö6ñ "à�‰”I˜d S¨¡V¨S°©VÐ$4Ó5Ô6ð 	�‰”R—X’X˜d“^×$ñK #ðN €Løðw	)Ø�L‰L˜Ô£ús   Ä`à`"c                 ó¢   • U(       a  U(       a  [        S5      e[        XX#XF5      u  pxn	U(       a  [        XxX‘5      n
OS /[        U5      -  n
XzU	4$ )NzFEstimating the number of characters not currently supported with poly.)Ú	Exceptionri   r©   rw   )r>   r?   r@   rA   rB   r¨   rC   r   rK   rO   r…   s              r   ÚgetDetBoxesr¬   é   sR   € ÞÖ"ÜÐ`ÓaÐaÜ,¨W¸~Ð_gÓ|Ñ€E�6æÜ˜U¨FÓ<‰à�œ˜U›Ñ#ˆà˜ÐÐr   c                 ó¸   • [        U 5      S:”  aJ  [        R                  " U 5      n [        [        U 5      5       H  nX   c  M
  X==   X-  X#-  4-  ss'   M     U $ )Nr   )rw   r   r	   r!   )r…   Úratio_wÚratio_hÚ	ratio_netrP   s        r   ÚadjustResultCoordinatesr±   õ   sS   € Ü
ˆ5ƒz�Aƒ~Ü—’˜“ˆÜ”s˜5“zÖ"ˆAØ‰xÓ#Ø“˜WÑ0°'Ñ2EÐFÑF•ñ #ð €Lr   )Frm   )r   )Ú__doc__Únumpyr   r   r,   Úscipy.ndimager   r   ri   r©   r¬   r±   © r   r   Ú<module>r¶      s=   ðñó Û 
Û Ý à ò4ð #ôAòFPôd
 õr   