o
    Og})                     @   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 RC:\Users\micha\Documents\internet-seite\env\Lib\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mapZ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      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G dd dZG dd dZdS ) GOpaquec                 C   
   t |S r   )r   GOpaqueTclsZ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       r1   c                   @   r'   )zGOpaque.Intc                 C   r(   r   )r   r"   r)   CV_INTr+   r   r   r   r%   8   r-   zGOpaque.Int.__new__Nr.   r   r   r   r   Int7   r2   r4   c                   @   r'   )zGOpaque.Int64c                 C   r(   r   )r   r"   r)   CV_INT64r+   r   r   r   r%   <   r-   zGOpaque.Int64.__new__Nr.   r   r   r   r   Int64;   r2   r6   c                   @   r'   )zGOpaque.UInt64c                 C   r(   r   )r   r"   r)   	CV_UINT64r+   r   r   r   r%   @   r-   zGOpaque.UInt64.__new__Nr.   r   r   r   r   UInt64?   r2   r8   c                   @   r'   )zGOpaque.Doublec                 C   r(   r   )r   r"   r)   	CV_DOUBLEr+   r   r   r   r%   D   r-   zGOpaque.Double.__new__Nr.   r   r   r   r   DoubleC   r2   r:   c                   @   r'   )zGOpaque.Floatc                 C   r(   r   )r   r"   r)   CV_FLOATr+   r   r   r   r%   H   r-   zGOpaque.Float.__new__Nr.   r   r   r   r   FloatG   r2   r<   c                   @   r'   )zGOpaque.Stringc                 C   r(   r   )r   r"   r)   	CV_STRINGr+   r   r   r   r%   L   r-   zGOpaque.String.__new__Nr.   r   r   r   r   StringK   r2   r>   c                   @   r'   )zGOpaque.Pointc                 C   r(   r   )r   r"   r)   CV_POINTr+   r   r   r   r%   P   r-   zGOpaque.Point.__new__Nr.   r   r   r   r   PointO   r2   r@   c                   @   r'   )zGOpaque.Point2fc                 C   r(   r   )r   r"   r)   
CV_POINT2Fr+   r   r   r   r%   T   r-   zGOpaque.Point2f.__new__Nr.   r   r   r   r   Point2fS   r2   rB   c                   @   r'   )zGOpaque.Point3fc                 C   r(   r   )r   r"   r)   
CV_POINT3Fr+   r   r   r   r%   X   r-   zGOpaque.Point3f.__new__Nr.   r   r   r   r   Point3fW   r2   rD   c                   @   r'   )zGOpaque.Sizec                 C   r(   r   )r   r"   r)   CV_SIZEr+   r   r   r   r%   \   r-   zGOpaque.Size.__new__Nr.   r   r   r   r   Size[   r2   rF   c                   @   r'   )zGOpaque.Rectc                 C   r(   r   )r   r"   r)   CV_RECTr+   r   r   r   r%   `   r-   zGOpaque.Rect.__new__Nr.   r   r   r   r   Rect_   r2   rH   c                   @   r'   )zGOpaque.Primc                 C   r(   r   )r   r"   r)   CV_DRAW_PRIMr+   r   r   r   r%   d   r-   zGOpaque.Prim.__new__Nr.   r   r   r   r   Primc   r2   rJ   c                   @   r'   )zGOpaque.Anyc                 C   r(   r   )r   r"   r)   CV_ANYr+   r   r   r   r%   h   r-   zGOpaque.Any.__new__Nr.   r   r   r   r   Anyg   r2   rL   N)r	   r/   r0   r%   r1   r4   r6   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G d!d" d"ZG d#d$ d$Zd%S )&GArrayc                 C   r!   r   )r   GArrayTr#   r   r   r   r%   o   r&   zGArray.__new__c                   @   r'   )zGArray.Boolc                 C   r(   r   )r   rN   r)   r*   r+   r   r   r   r%   s   r-   zGArray.Bool.__new__Nr.   r   r   r   r   r1   r   r2   r1   c                   @   r'   )z
GArray.Intc                 C   r(   r   )r   rN   r)   r3   r+   r   r   r   r%   w   r-   zGArray.Int.__new__Nr.   r   r   r   r   r4   v   r2   r4   c                   @   r'   )zGArray.Int64c                 C   r(   r   )r   rN   r)   r5   r+   r   r   r   r%   {   r-   zGArray.Int64.__new__Nr.   r   r   r   r   r6   z   r2   r6   c                   @   r'   )zGArray.UInt64c                 C   r(   r   )r   rN   r)   r7   r+   r   r   r   r%      r-   zGArray.UInt64.__new__Nr.   r   r   r   r   r8   ~   r2   r8   c                   @   r'   )zGArray.Doublec                 C   r(   r   )r   rN   r)   r9   r+   r   r   r   r%      r-   zGArray.Double.__new__Nr.   r   r   r   r   r:      r2   r:   c                   @   r'   )zGArray.Floatc                 C   r(   r   )r   rN   r)   r;   r+   r   r   r   r%      r-   zGArray.Float.__new__Nr.   r   r   r   r   r<      r2   r<   c                   @   r'   )zGArray.Stringc                 C   r(   r   )r   rN   r)   r=   r+   r   r   r   r%      r-   zGArray.String.__new__Nr.   r   r   r   r   r>      r2   r>   c                   @   r'   )zGArray.Pointc                 C   r(   r   )r   rN   r)   r?   r+   r   r   r   r%      r-   zGArray.Point.__new__Nr.   r   r   r   r   r@      r2   r@   c                   @   r'   )zGArray.Point2fc                 C   r(   r   )r   rN   r)   rA   r+   r   r   r   r%      r-   zGArray.Point2f.__new__Nr.   r   r   r   r   rB      r2   rB   c                   @   r'   )zGArray.Point3fc                 C   r(   r   )r   rN   r)   rC   r+   r   r   r   r%      r-   zGArray.Point3f.__new__Nr.   r   r   r   r   rD      r2   rD   c                   @   r'   )zGArray.Sizec                 C   r(   r   )r   rN   r)   rE   r+   r   r   r   r%      r-   zGArray.Size.__new__Nr.   r   r   r   r   rF      r2   rF   c                   @   r'   )zGArray.Rectc                 C   r(   r   )r   rN   r)   rG   r+   r   r   r   r%      r-   zGArray.Rect.__new__Nr.   r   r   r   r   rH      r2   rH   c                   @   r'   )zGArray.Scalarc                 C   r(   r   )r   rN   r)   	CV_SCALARr+   r   r   r   r%      r-   zGArray.Scalar.__new__Nr.   r   r   r   r   Scalar   r2   rP   c                   @   r'   )z
GArray.Matc                 C   r(   r   )r   rN   r)   CV_MATr+   r   r   r   r%      r-   zGArray.Mat.__new__Nr.   r   r   r   r   Mat   r2   rR   c                   @   r'   )zGArray.GMatc                 C   r(   r   )r   rN   r)   CV_GMATr+   r   r   r   r%      r-   zGArray.GMat.__new__Nr.   r   r   r   r   GMat   r2   rT   c                   @   r'   )zGArray.Primc                 C   r(   r   )r   rM   r)   rI   r+   r   r   r   r%      r-   zGArray.Prim.__new__Nr.   r   r   r   r   rJ      r2   rJ   c                   @   r'   )z
GArray.Anyc                 C   r(   r   )r   rM   r)   rK   r+   r   r   r   r%      r-   zGArray.Any.__new__Nr.   r   r   r   r   rL      r2   rL   N)r	   r/   r0   r%   r1   r4   r6   r8   r:   r<   r>   r@   rB   rD   rF   rH   rP   rR   rT   rJ   rL   r   r   r   r   rM   k   s&    rM   c                    s  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"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 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 ]\}}|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)   Z__opoutMetarT   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  sZ   

z&op.<locals>.op_with_params.<locals>.on)
rW   rX   r	   rY   r   rT   r_   idstaticmethodrj   )r$   ra   rb   rj   rd   re   rf   rg   rh   ri   r$   r   op_with_params   s   0
zop.<locals>.op_with_params)&r   rM   r1   r)   r*   r4   r3   r6   r5   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    )rg   rf   rh   ro   r   rm   r   r      s   	
	
	
@c                    r   )Nc                    s    j | _  j| _| S r   )rk   r]   rn   op_clsr   r   kernel_with_params:  s   z"kernel.<locals>.kernel_with_paramsr   )rq   rr   r   rp   r   r   8  s   )__all__r   r   r   r   r   r   r   r   r   r   r    rM   r   r   Zgapi_wip_gst_GStreamerPipeliner)   ZwipZGStreamerPipeliner   r   r   r   <module>   s0    





>L 