
    {-j
                        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 Z
dd	Z ed          d
             Zd Z ed          d             Z ed          d             Zd Z ed          d             ZdS )    N)Image   )logging)function_requires_depsis_dep_availablezopencv-contrib-pythonc                     t          | t          t          f          rIt          |           dk    r6t          | 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)input_s    l/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddlex/inference/models/common/vision/funcs.pycheck_image_sizer      sy     	6D%=))JKK1vay#&& vay#&&  6HHHIII	     cv2c                 $   |\  }}|| j         d         k    r|| j         d         k    r| S |                                dk    rt          }n7t          }|                                dk    rt	          j        d| d            || ||f|          } | S )zresize image to target sizer
   r   pilr   zUnknown backend z!. Defaulting to cv2 for resizing.)shapelower_pil_resize_cv2_resizer   warning)imtarget_sizeinterpbackendwhresize_functions          r   resizer$   $   s    DAqBHQKA!,,	}}%%%==??e##OM7MMM   
aVV	,	,BIr   c                 0    t          j        | ||          S )N)interpolation)r   r$   )srcsizeresamples      r   r   r   5   s    :c4x8888r   c                     t          | t          j                  rt          j        |           }n| }|                    ||          }t          j        |          S )N)r   npndarrayr   	fromarrayr$   asarray)r'   r(   r)   pil_imgs       r   r   r   :   sO    #rz"" /#&&nnT8,,G:gr   c                 ,    t          j        | d          S )zflip image horizontallyr
   r   flipr   s    r   flip_hr4   C        8B??r   c                 ,    t          j        | d          S )zflip image verticallyr   r1   r3   s    r   flip_vr7   I   r5   r   c                 2    |\  }}}}| ||||df         } | S )zslice the image. )r   coordsx1y1x2y2s         r   slicer?   O   s-    NBB	BrE2b5#	BIr   c                 $   t          |t                    r|gdz  }t          |          dk    rt          t	          d |D                       r| S | j        dk    rdn| j        d         }t          j        | g|t          j	        R d|f|z  i} | S )zpadding image by value   c              3   "   K   | ]
}|d k    V  dS )r   Nr9   ).0xs     r   	<genexpr>zpad.<locals>.<genexpr>]   s&      

a16





r   r	   r
   value)
r   r   r   
ValueErrorallndimr   r   copyMakeBorderBORDER_CONSTANT)r   padvalchnss       r   rL   rL   V   s     #s eai
3xx1}}


3


 	111"(1+D		B	O	Oc&9	O	O	O#$	O	OBIr   )r   )numpyr+   PILr   utilsr   
utils.depsr   r   r   r   r$   r   r   r4   r7   r?   rL   r9   r   r   <module>rS      sZ                   D D D D D D D D+,, JJJJ J J   " /009 9 109   /00  10
 /00  10
   /00  10  r   