o
    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                        fdd}|S )Nc                    s   | t j  j| j< | S N)sysmodules__dict____name__)funcmname L/var/www/html/scripts/venv/lib/python3.10/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   )cvgapi_GNetPackagelistmapdetailstripargsr   r   r   networks   s   r   c                  G   s   t ttj| S r   )r   r   r   GCompileArgr   r   r   r   compile_args   s   r   cv2c                  G      g | S r   r   r   r   r   r   GIn      r   c                  G   r   r   r   r   r   r   r   GOut   r   r    c                  G   r   r   r   r   r   r   r   gin"   r   r!   c                  G   r   r   r   r   r   r   r   descr_of'   r   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dS )GOpaquec                 C   
   t |S r   )r   GOpaqueTclsargtyper   r   r   __new__0      
zGOpaque.__new__c                   @      e Zd Zdd ZdS )zGOpaque.Boolc                 C      t t jjS r   )r   r%   gapiCV_BOOLselfr   r   r   r)   4      zGOpaque.Bool.__new__Nr	   
__module____qualname__r)   r   r   r   r   Bool3       r5   c                   @   r+   )zGOpaque.Intc                 C   r,   r   )r   r%   r-   CV_INTr/   r   r   r   r)   8   r1   zGOpaque.Int.__new__Nr2   r   r   r   r   Int7   r6   r8   c                   @   r+   )zGOpaque.Doublec                 C   r,   r   )r   r%   r-   	CV_DOUBLEr/   r   r   r   r)   <   r1   zGOpaque.Double.__new__Nr2   r   r   r   r   Double;   r6   r:   c                   @   r+   )zGOpaque.Floatc                 C   r,   r   )r   r%   r-   CV_FLOATr/   r   r   r   r)   @   r1   zGOpaque.Float.__new__Nr2   r   r   r   r   Float?   r6   r<   c                   @   r+   )zGOpaque.Stringc                 C   r,   r   )r   r%   r-   	CV_STRINGr/   r   r   r   r)   D   r1   zGOpaque.String.__new__Nr2   r   r   r   r   StringC   r6   r>   c                   @   r+   )zGOpaque.Pointc                 C   r,   r   )r   r%   r-   CV_POINTr/   r   r   r   r)   H   r1   zGOpaque.Point.__new__Nr2   r   r   r   r   PointG   r6   r@   c                   @   r+   )zGOpaque.Point2fc                 C   r,   r   )r   r%   r-   
CV_POINT2Fr/   r   r   r   r)   L   r1   zGOpaque.Point2f.__new__Nr2   r   r   r   r   Point2fK   r6   rB   c                   @   r+   )zGOpaque.Point3fc                 C   r,   r   )r   r%   r-   
CV_POINT3Fr/   r   r   r   r)   P   r1   zGOpaque.Point3f.__new__Nr2   r   r   r   r   Point3fO   r6   rD   c                   @   r+   )zGOpaque.Sizec                 C   r,   r   )r   r%   r-   CV_SIZEr/   r   r   r   r)   T   r1   zGOpaque.Size.__new__Nr2   r   r   r   r   SizeS   r6   rF   c                   @   r+   )zGOpaque.Rectc                 C   r,   r   )r   r%   r-   CV_RECTr/   r   r   r   r)   X   r1   zGOpaque.Rect.__new__Nr2   r   r   r   r   RectW   r6   rH   c                   @   r+   )zGOpaque.Primc                 C   r,   r   )r   r%   r-   CV_DRAW_PRIMr/   r   r   r   r)   \   r1   zGOpaque.Prim.__new__Nr2   r   r   r   r   Prim[   r6   rJ   c                   @   r+   )zGOpaque.Anyc                 C   r,   r   )r   r%   r-   CV_ANYr/   r   r   r   r)   `   r1   zGOpaque.Any.__new__Nr2   r   r   r   r   Any_   r6   rL   N)r	   r3   r4   r)   r5   r8   r:   r<   r>   r@   rB   rD   rF   rH   rJ   rL   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d!S )"GArrayc                 C   r$   r   )r   GArrayTr&   r   r   r   r)   g   r*   zGArray.__new__c                   @   r+   )zGArray.Boolc                 C   r,   r   )r   rN   r-   r.   r/   r   r   r   r)   k   r1   zGArray.Bool.__new__Nr2   r   r   r   r   r5   j   r6   r5   c                   @   r+   )z
GArray.Intc                 C   r,   r   )r   rN   r-   r7   r/   r   r   r   r)   o   r1   zGArray.Int.__new__Nr2   r   r   r   r   r8   n   r6   r8   c                   @   r+   )zGArray.Doublec                 C   r,   r   )r   rN   r-   r9   r/   r   r   r   r)   s   r1   zGArray.Double.__new__Nr2   r   r   r   r   r:   r   r6   r:   c                   @   r+   )zGArray.Floatc                 C   r,   r   )r   rN   r-   r;   r/   r   r   r   r)   w   r1   zGArray.Float.__new__Nr2   r   r   r   r   r<   v   r6   r<   c                   @   r+   )zGArray.Stringc                 C   r,   r   )r   rN   r-   r=   r/   r   r   r   r)   {   r1   zGArray.String.__new__Nr2   r   r   r   r   r>   z   r6   r>   c                   @   r+   )zGArray.Pointc                 C   r,   r   )r   rN   r-   r?   r/   r   r   r   r)      r1   zGArray.Point.__new__Nr2   r   r   r   r   r@   ~   r6   r@   c                   @   r+   )zGArray.Point2fc                 C   r,   r   )r   rN   r-   rA   r/   r   r   r   r)      r1   zGArray.Point2f.__new__Nr2   r   r   r   r   rB      r6   rB   c                   @   r+   )zGArray.Point3fc                 C   r,   r   )r   rN   r-   rC   r/   r   r   r   r)      r1   zGArray.Point3f.__new__Nr2   r   r   r   r   rD      r6   rD   c                   @   r+   )zGArray.Sizec                 C   r,   r   )r   rN   r-   rE   r/   r   r   r   r)      r1   zGArray.Size.__new__Nr2   r   r   r   r   rF      r6   rF   c                   @   r+   )zGArray.Rectc                 C   r,   r   )r   rN   r-   rG   r/   r   r   r   r)      r1   zGArray.Rect.__new__Nr2   r   r   r   r   rH      r6   rH   c                   @   r+   )zGArray.Scalarc                 C   r,   r   )r   rN   r-   	CV_SCALARr/   r   r   r   r)      r1   zGArray.Scalar.__new__Nr2   r   r   r   r   Scalar   r6   rP   c                   @   r+   )z
GArray.Matc                 C   r,   r   )r   rN   r-   CV_MATr/   r   r   r   r)      r1   zGArray.Mat.__new__Nr2   r   r   r   r   Mat   r6   rR   c                   @   r+   )zGArray.GMatc                 C   r,   r   )r   rN   r-   CV_GMATr/   r   r   r   r)      r1   zGArray.GMat.__new__Nr2   r   r   r   r   GMat   r6   rT   c                   @   r+   )zGArray.Primc                 C   r,   r   )r   rM   r-   rI   r/   r   r   r   r)      r1   zGArray.Prim.__new__Nr2   r   r   r   r   rJ      r6   rJ   c                   @   r+   )z
GArray.Anyc                 C   r,   r   )r   rM   r-   rK   r/   r   r   r   r)      r1   zGArray.Any.__new__Nr2   r   r   r   r   rL      r6   rL   N)r	   r3   r4   r)   r5   r8   r:   r<   r>   r@   rB   rD   rF   rH   rP   rR   rT   rJ   rL   r   r   r   r   rM   c   s"    rM   c                    s  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 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i fdd}|S )Nzcv.gapi.CV_BOOLzcv.gapi.CV_INTz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 ]\}}|tjtjgvr3t d j|j|q 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 ]\}\}}|v rWt|tjs;td j|tjjt	|j|	 | krVtd j||  |	  q|v rt|tj
sqtd j|tj
jt	|j|	 | krtd j||  |	  q|t	|krtd j||jt	|jqtjj jg| R  }g }tD ]F\}}|tjkr||  q|tjkr||  q|v r|||  q|v r|||  qtd j|j|t |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   rN   r	   typer%   r-   __opoutMetarT   appendgetGMatGScalar
getGScalar
getGOpaque	getGArraytuple)r   itar   
out_protosout_type)r'   garray_typesgopaque_typesin_typesop_id	out_typestype2strr   r   on   sZ   

z&op.<locals>.op_with_params.<locals>.on)
rW   rX   r	   rY   r   rT   ra   idstaticmethodrq   )r'   rf   rg   rq   rk   rl   rm   rn   ro   rp   r'   r   op_with_params   s   0
zop.<locals>.op_with_params)"r   rM   r5   r-   r.   r8   r7   r:   r9   r<   r;   r>   r=   r@   r?   rB   rA   rD   rC   rF   rE   rH   rG   rP   rO   rR   rQ   rT   rS   rJ   rI   rL   rK   r#   )rn   rm   ro   rv   r   rt   r   r      s`   @c                    r   )Nc                    s    j | _  j| _| S r   )rr   r^   ru   op_clsr   r   kernel_with_params$  s   z"kernel.<locals>.kernel_with_paramsr   )rx   ry   r   rw   r   r   "  s   )__all__r   r   r   r   r   r   r   r    r!   r"   r#   rM   r   r   gapi_wip_gst_GStreamerPipeliner-   wipGStreamerPipeliner   r   r   r   <module>   s.    





6Dz