o
    0j
                     @   s   d dl Zd dlmZ ddlmZ ddlmZmZ edr d dl	Z	dd Z
dd
dZeddd Zdd Zeddd Zeddd Zdd Zeddd ZdS )    N)Image   )logging)function_requires_depsis_dep_availablezopencv-contrib-pythonc                 C   sH   t | ttfrt| dkrt | d trt | d ts"t|  ddS )zcheck image size   r      z% cannot represent a valid image size.N)
isinstancelisttuplelenint	TypeError)Zinput_ r   m/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddlex/inference/models/common/vision/funcs.pycheck_image_size   s   r   cv2c                 C   sp   |\}}|| j d kr|| j d kr| S | dkrt}nt}| dkr.td| d || ||f|} | S )zresize image to target sizer   r   Zpilr   zUnknown backend z!. Defaulting to cv2 for resizing.)shapelower_pil_resize_cv2_resizer   warning)imZtarget_sizeinterpbackendwhZresize_functionr   r   r   resize$   s   
r   c                 C   s   t j| ||dS )N)interpolation)r   r   )srcsizeresampler   r   r   r   5   s   r   c                 C   s2   t | tjrt| }n| }|||}t|S )N)r	   npZndarrayr   Z	fromarrayr   Zasarray)r   r    r!   Zpil_imgr   r   r   r   :   s
   
r   c                 C      t | dS )zflip image horizontallyr   r   flipr   r   r   r   flip_hC      r'   c                 C   r#   )zflip image verticallyr   r$   r&   r   r   r   flip_vI   r(   r)   c                 C   s&   |\}}}}| ||||df } | S )zslice the image.r   )r   Zcoordsx1y1Zx2y2r   r   r   sliceO   s   r-   c                 C   sz   t |tr
|gd }t|dkrttdd |D r| S | jdkr$dn| jd }tj| g|tj	R d|f| i} | S )zpadding image by value   c                 s   s    | ]}|d kV  qdS )r   Nr   ).0xr   r   r   	<genexpr>]   s    zpad.<locals>.<genexpr>r   r   value)
r	   r   r   
ValueErrorallndimr   r   ZcopyMakeBorderZBORDER_CONSTANT)r   padvalZchnsr   r   r   r6   V   s   

$r6   )r   )numpyr"   ZPILr   utilsr   Z
utils.depsr   r   r   r   r   r   r   r'   r)   r-   r6   r   r   r   r   <module>   s$   

	

