
    7vh                         d dl mZmZ d dlmZmZmZ d dlZd dlZd dl	Z	d dl
Z
d dlmZmZ  G d de      ZdZ ej                   ed	        ed
      fdefdZdefdZy)    )	BaseModelField)FileHTTPException
UploadFileN)extract_textprocess_imagec                       e Zd ZU eed<   y)	ImagePath
image_pathN)__name__
__module____qualname__str__annotations__     +/opt/face_recognition/src/service/cedula.pyr   r   	   s    Or   r   temp_imagesT)exist_ok.filec                   K   | j                   j                  d      st        dd      t        j                         j
                   d| j                   }t        j                  j                  t        |      }t        |d      5 }t        j                  | j                  |       ddd       	 t        |      }|t        j                  j!                  |      rt        j"                  |       S S # 1 sw Y   LxY w# t$        $ r}t        dt'        |            d}~ww xY w# t        j                  j!                  |      rt        j"                  |       w w xY ww)	ub   
    Endpoint para procesar una imagen enviada directamente y detectar cédulas de identidad.
    zimage/i  zEl archivo debe ser una imagen.status_codedetail_wbNi  )content_type
startswithr   uuiduuid4hexfilenameospathjoinTEMP_IMAGE_DIRopenshutilcopyfileobjr   r	   existsremove	Exceptionr   )r   r#   r   bufferresultes         r   process_image_endpointr1      s     ''14UVV **,""#1T]]O4Hnh7J 
j$	 .6499f-.	"z*
 77>>*%IIj! &. .  <CF;;< 77>>*%IIj! &sN   BE!!C4)E!2D  >6E!4C=9E! 	D$	DD$$D' '7EE!datac                     | j                   }t        j                  j                  |      st	        dd      t        j                  |      }t        |      }d|iS )zL
    Endpoint para extraer texto de una imagen completa utilizando OCR.
    i  z-La imagen no existe en la ruta proporcionada.r   extracted_text)r   r$   r%   r+   r   cv2imreadr   )r2   r   imagetexts       r   extract_text_endpointr9   )   sN     J77>>*%4cddJJz"EDd##r   )pydanticr   r   fastapir   r   r   r$   r)   r    r5   #src.validators.validateidentitycardr   r	   r   r'   makedirsr1   r9   r   r   r   <module>r>      s_    % 2 2 	   
 K	   NT *48I "z "4	$	 	$r   