
    L_iR                         S SK r S SKrS rg)    Nc                    [         R                  " U [         R                  5      n[         R                  " U[         R                  5      n[         R
                  " USS[         R                  [         R                  -   5      u  p4[        R                  " [        R                  " US:  5      5      n[         R                  " U5      S   nUS:  a  SU-   * nOU* nUR                  SS u  px[         R                  " US-  US-  4US5      n	[         R                  " XIX4[         R                  [         R                   S	9n
U
$ )
z7Preprocess image for OCR: grayscale, threshold, deskew.r      iZ   N   g      ?)flags
borderMode)cv2imreadIMREAD_COLORcvtColorCOLOR_BGR2GRAY	thresholdTHRESH_BINARYTHRESH_OTSUnpcolumn_stackwhereminAreaRectshapegetRotationMatrix2D
warpAffineINTER_CUBICBORDER_REPLICATE)img_pathimggray_threshcoordsanglehwMdeskeweds              /var/www/html/land-ocr/utils.pypreprocess_imager'      s    
**Xs//
0C<<S//0D dAs!//#//ACIA __RXXfqj12FOOF#B'Es{u*YYr]FQaa 0%=A~~f!$'OO),)=)=?H O    )r
   numpyr   r'    r(   r&   <module>r+      s    
 r(   