
    Yho%                     V    d Z ddlZddlZddlZddlmZ 	 d Z	 ddZd Z	ddZ
dd
ZdS )z6  
Copyright (c) 2019-present NAVER Corp.
MIT License
    N)labelc                     t          j        | |d         |d         df          }t          j        |d         |d         z  |d         |d         z  g          S )Nr         )npmatmularray)Minvptouts      e/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/easyocr/craft_utils.py	warpCoordr      sO    
)D2a5"Q%+
,
,C8SVCF]CF3q6M2333    Fc           
      
   |                                 }|                                  } | j        \  }}	 t          j        | |dd          \  }}	t          j        ||dd          \  }}
t	          j        |	|
z   dd          }t          j        |                    t          j                  d          \  }}}}g }g }t          d|          D ]-}||t          j
        f         }|dk     rt	          j        | ||k                       |k     rAt	          j        | j        t          j                  }d|||k    <   |rKt          j        | |z
  |z  dz  |dd          \  }}t          |          \  }}|                    |           n|                    |           d|t	          j        |
dk    |	dk              <   ||t          j        f         ||t          j        f         }}||t          j        f         ||t          j        f         }}t)          t+          j        |t/          ||          z  ||z  z            d	z            }||z
  ||z   |z   dz   ||z
  ||z   |z   dz   f\  }}}} |dk     rd}|dk     rd}||k    r|}| |k    r|} t          j        t          j        d|z   d|z   f          }!t          j        ||| ||f         |!          ||| ||f<   t	          j        t	          j        t	          j        |dk                        dd
                                                              dd	          }"t          j         |"          }#t          j!        |#          }$t          j"        #                    |$d         |$d         z
            t          j"        #                    |$d         |$d	         z
            }}t          ||          t/          ||          dz   z  }%tI          d|%z
            dk    rt/          |"d d df                   t          |"d d df                   }'}&t/          |"d d df                   t          |"d d df                   })}(t	          j        |&|(g|'|(g|'|)g|&|)ggt          j%                  }$|$&                    d
          '                                }*t	          j        |$d|*z
  d          }$t	          j        |$          }$|                    |$           /|||fS )Nr   r      )connectivity
   dtype   g     o@r   )axisgh㈵>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      s   llnnGllnnG=LE5mGXq!<<OCmG^QBBOCgj:5q!<<O(+(HI_I_`b`hIiIixy(z(z(z%GVUI
CF1W 0 0Q(()"99h 6'&!)$%%66 '-rx888vqy 	 #w/@F.JD.PR`bcef g gA~~..JAwMM'""""MM!?@r~j!mZ];;<Q(()5CO1C+D1Q))*E!S5G2G,H1DIdSAYY.!a%899A=>>UAEEMA$5q5y!a%%-RSBSSBB66B66B;;U;;U*3>1u9a%i:PQQ"z&B2*>GGr"ube| gbhrx	':':;;A1EEEOOQQYYZ\]^__OK00	mI&& y~~c!fs1vo..	s1vA0O0O11IIQT!12	q9}$${111Q3'((#k!!!A#.>*?*?qA{111Q3'((#k!!!A#.>*?*?qA(QFQFQFQF;2:NNNC 777??))++gc1X:q))hsmm

3r   c                    d}d}d}d}d}g }	t          |           D 	]6\  }
}t          t          j                            |d         |d         z
            dz             t          t          j                            |d         |d         z
            dz             }}|d	k     s|d	k     r|	                    d            t          j        ddg|dg||gd|gg          }t          j        ||          }t          j	        ||||ft          j
        
          }	 t          j                            |          }n#  |	                    d            Y 8xY w||
         }d|||k    <   d||dk    <   	 g }d}t          |          D ]~}t          j        |d d |f         dk              d         }t          |          dk     r>|                    ||d         |d         f           |d         |d         z
  dz   }||k    r|}||z  |k     r|	                    d            |dz  dz   }||z  }d g|z  }ddgg|z  }dg|z  }d}d}d}t          dt          |                    D ]}||         \  } }!}"|dz   |z  | k    r<||k    r6|dk    r n||         d         |z  ||         d         |z  g||<   d}|dz  }d}|!|"z   dz  }#|"|!z
  dz   }$||         d         | z   ||         d         |#z   g||<   |dz  }|dz  dk    r||$k     r4| |#f|t          |dz
  dz            <   |$|t          |dz
  dz            <   |$}|dk    r%|d         d         |z  |d         d         |z  g|d<   d |v s|t          j        |          dz  k     r|	                    d            t          j        |          |z  dz  }%g }&t          |          D ]\  }\  } }#||dz  dz            d         ||dz           d         z
  }'||dz  dz            d         ||dz           d         z
  }(|'dk    r |&                    | |#|%z
  | |#|%z   g           zt#          j        |(|'           })|%t#          j        |)          z  |%t#          j        |)          z  }+}*|&                    | |+z
  |#|*z
  | |+z   |#|*z   g           d\  },}-|d         d         |d         d         z
  |d         d         |d         d         z
  z  |d         d         |d         d         z
  |d         d         |d         d         z
  z  z   }.|d         d         |d         d         z
  |d         d         |d         d         z
  z  |d         d         |d         d         z
  |d         d         |d         d         z
  z  z   }/t          j        d||          D ]}0d|%z  |0z  }'|,st          j        |j        t          j                  }1|.|'z  }(t          j        |&d                   t          j        |'|(|'|(g          z
  }2t          j        |1t          |2d                   t          |2d                   ft          |2d                   t          |2d                   fdd           t          j        t          j        ||1                    dk    s|0d|z  z   |k    r|2}3d},|-st          j        |j        t          j                  }1|/|'z  }(t          j        |&d                   t          j        |'|(|'|(g          z   }2t          j        |1t          |2d                   t          |2d                   ft          |2d                   t          |2d                   fdd           t          j        t          j        ||1                    dk    s|0d|z  z   |k    r|2}4d}-|,r|-r n|,r|-s|	                    d            g }5|5                    t;          ||3d         |3d         f                     |&D ]3}2|5                    t;          ||2d         |2d         f                     4|5                    t;          ||4d         |4d         f                     |5                    t;          ||4d         |4d         f                     t=          |&          D ]3}2|5                    t;          ||2d         |2d         f                     4|5                    t;          ||3d         |3d         f                     |	                    t          j        |5                     	8|	S )N   gffffff?g333333?g       @g?r   r   r   r   )flagsr   g      ?g      ?FFr      )	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"" E% E%329>>#a&3q6/22Q677RY^^CPQFUXYZU[O=\=\_`=`9a9a1r66QVVLL j1Q%1qeQqE233'S11(QF#BSTTT
	)9==##DD	)LL 1I	./
:*+%&
:>""q 	2 	2AXj1o233A6F6{{QIIq&)VBZ0111BZ&)+a/F6 }w&&LL 1*q.GVf_!fX'
S6\
qR!! 	 	AQ%KQB!u$))g.@.@a<<'1'':1'='GT[I\]^I_biIi&j
7# 1 r'SBGaKE#-g#6q#9A#=z'?RST?UXZ?Z"[JwqLG{a~~,-r73!Q''(38
3!Q//0 a<<(nQ/'9:b>!;Lw;VWJrN 2::
!3!3d!:::LL i
++l:Q> #B-- 	: 	:JAw2AEAI&q)Jq1u,=a,@@BAEAI&q)Jq1u,=a,@@BQwwq"{"2ArK7GHIIIJr2&&&C#.dhsmm0KqAMM1q5"q&!a%a89999 ".
JQ%(RU1X%"Q%(RU1X*=>"Q%(RPQUSTXBUZ\]^Z_`aZbeghiejklemZmAnnR&)bfQi'BrF1I2q	,ABbfQiRTUWRXYZR[F[`bce`fgh`ilnoqlrstlu`uEvv3v.. 	 	A[1$B &8J$4BHEEEb[HVAY''"(BB3C*D*DDC!IIs1Q4yy#9C!IIs1Q4yy;QST`abbbb6".X>>??1DDAPVJZ_H_H_C!%J &8J$4BHEEEb[HVBZ((28RR4D+E+EEC!IIs1Q4yy#9C!IIs1Q4yy;QST`abbbb6".X>>??1DDAPVJZ_H_H_C!%J j   	)z 	)LL IdSVSV$455666 	7 	7AKK	$1qt556666IdSVSV$455666IdSVSV$455666&!! 	7 	7AKK	$1qt556666IdSVSV$455666 	RXd^^$$$$Ls   D::Ec                     |r|rt          d          t          | |||||          \  }}}	|rt          |||	|          }
nd gt          |          z  }
||
|	fS )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      s     b" b`aaa,Wg~~_gi{||E66 $UFFG<<U#%r   r   c                     t          |           dk    rSt          j        |           } t          t          |                     D ]"}| |         | |xx         ||z  ||z  fz  cc<   #| S )Nr   )rw   r   r	   r!   )r   ratio_wratio_h	ratio_netrP   s        r   adjustResultCoordinatesr      sr    
5zzA~~s5zz"" 	G 	GAQx#aWy0'I2EFFLr   )Frm   )r   )__doc__numpyr   r   r,   scipy.ndimager   r   ri   r   r   r    r   r   <module>r      s         



        4 4 4 #A A A AFP P Pd
  
  
  
      r   