U
    ?h:(                     @   s   d dgZ ddlZddlZdd Zeddd Zedd	d
 Zeddd Zeddd Zeddd Z	eddd Z
edG dd dZedG dd dZdd  Zdd Zejejj_dS )opkernel    Nc                    s    fdd}|S )Nc                    s   | t j  j| j< | S N)sysmodules__dict____name__)funcmname C/var/www/html/venv/lib/python3.8/site-packages/cv2/gapi/__init__.pyparameterized   s    zregister.<locals>.parameterizedr   )r   r   r   r
   r   register   s    r   zcv2.gapic                  G   s   t ttt jj| S r   )cvZgapi_GNetPackagelistmapdetailstripargsr   r   r   networks   s    r   c                  G   s   t ttj| S r   )r   r   r   ZGCompileArgr   r   r   r   compile_args   s    r   cv2c                  G   s   | S r   r   r   r   r   r   GIn   s    r   c                  G   s   | S r   r   r   r   r   r   GOut   s    r   c                  G   s   | S r   r   r   r   r   r   gin"   s    r   c                  G   s   | S r   r   r   r   r   r   descr_of'   s    r   c                   @   s   e Zd Zdd ZG dd dZG dd dZG dd dZG d	d
 d
ZG dd dZG dd dZ	G dd dZ
G dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZdS ) GOpaquec                 C   s
   t |S r   )r   GOpaqueTclsZargtyper   r   r   __new__0   s    zGOpaque.__new__c                   @   s   e Zd Zdd ZdS )zGOpaque.Boolc                 C   s   t t jjS r   )r   r   gapiCV_BOOLselfr   r   r   r"   4   s    zGOpaque.Bool.__new__Nr   
__module____qualname__r"   r   r   r   r   Bool3   s   r*   c                   @   s   e Zd Zdd ZdS )zGOpaque.Intc                 C   s   t t jjS r   )r   r   r#   CV_INTr%   r   r   r   r"   8   s    zGOpaque.Int.__new__Nr'   r   r   r   r   Int7   s   r,   c                   @   s   e Zd Zdd ZdS )zGOpaque.Int64c                 C   s   t t jjS r   )r   r   r#   CV_INT64r%   r   r   r   r"   <   s    zGOpaque.Int64.__new__Nr'   r   r   r   r   Int64;   s   r.   c                   @   s   e Zd Zdd ZdS )zGOpaque.UInt64c                 C   s   t t jjS r   )r   r   r#   	CV_UINT64r%   r   r   r   r"   @   s    zGOpaque.UInt64.__new__Nr'   r   r   r   r   UInt64?   s   r0   c                   @   s   e Zd Zdd ZdS )zGOpaque.Doublec                 C   s   t t jjS r   )r   r   r#   	CV_DOUBLEr%   r   r   r   r"   D   s    zGOpaque.Double.__new__Nr'   r   r   r   r   DoubleC   s   r2   c                   @   s   e Zd Zdd ZdS )zGOpaque.Floatc                 C   s   t t jjS r   )r   r   r#   CV_FLOATr%   r   r   r   r"   H   s    zGOpaque.Float.__new__Nr'   r   r   r   r   FloatG   s   r4   c                   @   s   e Zd Zdd ZdS )zGOpaque.Stringc                 C   s   t t jjS r   )r   r   r#   	CV_STRINGr%   r   r   r   r"   L   s    zGOpaque.String.__new__Nr'   r   r   r   r   StringK   s   r6   c                   @   s   e Zd Zdd ZdS )zGOpaque.Pointc                 C   s   t t jjS r   )r   r   r#   CV_POINTr%   r   r   r   r"   P   s    zGOpaque.Point.__new__Nr'   r   r   r   r   PointO   s   r8   c                   @   s   e Zd Zdd ZdS )zGOpaque.Point2fc                 C   s   t t jjS r   )r   r   r#   
CV_POINT2Fr%   r   r   r   r"   T   s    zGOpaque.Point2f.__new__Nr'   r   r   r   r   Point2fS   s   r:   c                   @   s   e Zd Zdd ZdS )zGOpaque.Point3fc                 C   s   t t jjS r   )r   r   r#   
CV_POINT3Fr%   r   r   r   r"   X   s    zGOpaque.Point3f.__new__Nr'   r   r   r   r   Point3fW   s   r<   c                   @   s   e Zd Zdd ZdS )zGOpaque.Sizec                 C   s   t t jjS r   )r   r   r#   CV_SIZEr%   r   r   r   r"   \   s    zGOpaque.Size.__new__Nr'   r   r   r   r   Size[   s   r>   c                   @   s   e Zd Zdd ZdS )zGOpaque.Rectc                 C   s   t t jjS r   )r   r   r#   CV_RECTr%   r   r   r   r"   `   s    zGOpaque.Rect.__new__Nr'   r   r   r   r   Rect_   s   r@   c                   @   s   e Zd Zdd ZdS )zGOpaque.Primc                 C   s   t t jjS r   )r   r   r#   CV_DRAW_PRIMr%   r   r   r   r"   d   s    zGOpaque.Prim.__new__Nr'   r   r   r   r   Primc   s   rB   c                   @   s   e Zd Zdd ZdS )zGOpaque.Anyc                 C   s   t t jjS r   )r   r   r#   CV_ANYr%   r   r   r   r"   h   s    zGOpaque.Any.__new__Nr'   r   r   r   r   Anyg   s   rD   N)r   r(   r)   r"   r*   r,   r.   r0   r2   r4   r6   r8   r:   r<   r>   r@   rB   rD   r   r   r   r   r   ,   s   r   c                   @   s  e Zd Zdd ZG dd dZG dd dZG dd dZG d	d
 d
ZG dd dZG dd dZ	G dd dZ
G dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd  d ZG d!d" d"ZG d#d$ d$Zd%S )&GArrayc                 C   s
   t |S r   )r   GArrayTr    r   r   r   r"   o   s    zGArray.__new__c                   @   s   e Zd Zdd ZdS )zGArray.Boolc                 C   s   t t jjS r   )r   rF   r#   r$   r%   r   r   r   r"   s   s    zGArray.Bool.__new__Nr'   r   r   r   r   r*   r   s   r*   c                   @   s   e Zd Zdd ZdS )z
GArray.Intc                 C   s   t t jjS r   )r   rF   r#   r+   r%   r   r   r   r"   w   s    zGArray.Int.__new__Nr'   r   r   r   r   r,   v   s   r,   c                   @   s   e Zd Zdd ZdS )zGArray.Int64c                 C   s   t t jjS r   )r   rF   r#   r-   r%   r   r   r   r"   {   s    zGArray.Int64.__new__Nr'   r   r   r   r   r.   z   s   r.   c                   @   s   e Zd Zdd ZdS )zGArray.UInt64c                 C   s   t t jjS r   )r   rF   r#   r/   r%   r   r   r   r"      s    zGArray.UInt64.__new__Nr'   r   r   r   r   r0   ~   s   r0   c                   @   s   e Zd Zdd ZdS )zGArray.Doublec                 C   s   t t jjS r   )r   rF   r#   r1   r%   r   r   r   r"      s    zGArray.Double.__new__Nr'   r   r   r   r   r2      s   r2   c                   @   s   e Zd Zdd ZdS )zGArray.Floatc                 C   s   t t jjS r   )r   rF   r#   r3   r%   r   r   r   r"      s    zGArray.Float.__new__Nr'   r   r   r   r   r4      s   r4   c                   @   s   e Zd Zdd ZdS )zGArray.Stringc                 C   s   t t jjS r   )r   rF   r#   r5   r%   r   r   r   r"      s    zGArray.String.__new__Nr'   r   r   r   r   r6      s   r6   c                   @   s   e Zd Zdd ZdS )zGArray.Pointc                 C   s   t t jjS r   )r   rF   r#   r7   r%   r   r   r   r"      s    zGArray.Point.__new__Nr'   r   r   r   r   r8      s   r8   c                   @   s   e Zd Zdd ZdS )zGArray.Point2fc                 C   s   t t jjS r   )r   rF   r#   r9   r%   r   r   r   r"      s    zGArray.Point2f.__new__Nr'   r   r   r   r   r:      s   r:   c                   @   s   e Zd Zdd ZdS )zGArray.Point3fc                 C   s   t t jjS r   )r   rF   r#   r;   r%   r   r   r   r"      s    zGArray.Point3f.__new__Nr'   r   r   r   r   r<      s   r<   c                   @   s   e Zd Zdd ZdS )zGArray.Sizec                 C   s   t t jjS r   )r   rF   r#   r=   r%   r   r   r   r"      s    zGArray.Size.__new__Nr'   r   r   r   r   r>      s   r>   c                   @   s   e Zd Zdd ZdS )zGArray.Rectc                 C   s   t t jjS r   )r   rF   r#   r?   r%   r   r   r   r"      s    zGArray.Rect.__new__Nr'   r   r   r   r   r@      s   r@   c                   @   s   e Zd Zdd ZdS )zGArray.Scalarc                 C   s   t t jjS r   )r   rF   r#   	CV_SCALARr%   r   r   r   r"      s    zGArray.Scalar.__new__Nr'   r   r   r   r   Scalar   s   rH   c                   @   s   e Zd Zdd ZdS )z
GArray.Matc                 C   s   t t jjS r   )r   rF   r#   CV_MATr%   r   r   r   r"      s    zGArray.Mat.__new__Nr'   r   r   r   r   Mat   s   rJ   c                   @   s   e Zd Zdd ZdS )zGArray.GMatc                 C   s   t t jjS r   )r   rF   r#   CV_GMATr%   r   r   r   r"      s    zGArray.GMat.__new__Nr'   r   r   r   r   GMat   s   rL   c                   @   s   e Zd Zdd ZdS )zGArray.Primc                 C   s   t t jjS r   )r   rE   r#   rA   r%   r   r   r   r"      s    zGArray.Prim.__new__Nr'   r   r   r   r   rB      s   rB   c                   @   s   e Zd Zdd ZdS )z
GArray.Anyc                 C   s   t t jjS r   )r   rE   r#   rC   r%   r   r   r   r"      s    zGArray.Any.__new__Nr'   r   r   r   r   rD      s   rD   N)r   r(   r)   r"   r*   r,   r.   r0   r2   r4   r6   r8   r:   r<   r>   r@   rH   rJ   rL   rB   rD   r   r   r   r   rE   k   s$   rE   c              "      s2  t jjt jjt jjt jjt jjt jjt jj	t jj
t jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jj t jj!t jj"t jj#t jj$i t j%jt jjt j%jt jjt j%jt jjt j%jt jjt j%jt jjt j%j	t jj
t j%jt jjt j%jt jjt j%jt jjt j%jt jjt j%jt jjt j%jt jjt j%jt jjt j%jt jjt j%j!t jj"t j%j#t jj$it jjdt jjdt jjdt jj
dt jjdt jjdt jjdt jjdt jjd	t jjd
t jjdt jjdt jjdt jjdt jj dt jj"di fdd}|S )Nzcv.gapi.CV_BOOLzcv.gapi.CV_INTzcv.gapi.CV_INT64zcv.gapi.CV_UINT64zcv.gapi.CV_DOUBLEzcv.gapi.CV_FLOATzcv.gapi.CV_STRINGzcv.gapi.CV_POINTzcv.gapi.CV_POINT2Fzcv.gapi.CV_POINT3Fzcv.gapi.CV_SIZEzcv.gapi.CV_RECTzcv.gapi.CV_SCALARzcv.gapi.CV_MATzcv.gapi.CV_GMATzcv.gapi.CV_DRAW_PRIMc                    s   st d js(t d jtD ]4\}}|tjtjfkr0t d j|j|q0 fdd} _t| _	 S )Nz,{} operation should have at least one input!z-{} operation should have at least one output!z.{} unsupported output type: {} in position: {}c               
      s*  t t | kr(tdt t | tt| D ]\}\}}|krt|tjsztd j|tjjt	|jn6|	 | krtd j||  |	  q6|kr$t|tj
std j|tj
jt	|jn8|	 | krNtd j||  |	  q6|t	|kr6td j||jt	|jq6tjj jf|  }g }tD ]\}}|tjkr||  nr|tjkr||  nV|kr|||  n6|kr|||  ntd j|j|qrt |dkr"t|S |d S )	Nz:Invalid number of input elements!
Expected: {}, Actual: {}z9{} invalid type for argument {}.
Expected: {}, Actual: {}zA{} invalid GArrayT type for argument {}.
Expected: {}, Actual: {}zA{} invalid GOpaque type for argument {}.
Expected: {}, Actual: {}z?{} invalid input type for argument {}.
Expected: {}, Actual: {}zMIn {}: G-API operation can't produce the output with type: {} in position: {}   r   )len	Exceptionformat	enumeratezip
isinstancer   rF   r   typer   r#   Z__opoutMetarL   appendZgetGMatGScalarZ
getGScalarZ
getGOpaqueZ	getGArraytuple)r   itar   Z
out_protosZout_type)r!   garray_typesgopaque_typesin_typesop_id	out_typestype2strr   r   on  sx          
 

     
 
   

  
z&op.<locals>.op_with_params.<locals>.on)
rO   rP   r   rQ   r   rL   rW   idstaticmethodrb   )r!   rY   rZ   rb   r\   r]   r^   r_   r`   ra   r!   r   op_with_params   s      0
zop.<locals>.op_with_params)&r   rE   r*   r#   r$   r,   r+   r.   r-   r0   r/   r2   r1   r4   r3   r6   r5   r8   r7   r:   r9   r<   r;   r>   r=   r@   r?   rH   rG   rJ   rI   rL   rK   rB   rA   rD   rC   r   )r_   r^   r`   rg   r   re   r   r      s                                                     @c                    s    fdd}|S )Nc                    s    j | _  j| _| S r   )rc   rU   rf   op_clsr   r   kernel_with_params:  s    z"kernel.<locals>.kernel_with_paramsr   )ri   rj   r   rh   r   r   8  s    )__all__r   r   r   r   r   r   r   r   r   r   r   rE   r   r   Zgapi_wip_gst_GStreamerPipeliner#   ZwipZGStreamerPipeliner   r   r   r   <module>   s.   





>L 