OpenCV  4.5.1
Open Source Computer Vision
Classes | Namespaces | Macros | Typedefs | Functions
gkernel.hpp File Reference
#include <functional>
#include <iostream>
#include <string>
#include <type_traits>
#include <unordered_map>
#include <utility>
#include <opencv2/gapi/gcommon.hpp>
#include <opencv2/gapi/util/util.hpp>
#include <opencv2/gapi/gcall.hpp>
#include <opencv2/gapi/garg.hpp>
#include <opencv2/gapi/gmetaarg.hpp>
#include <opencv2/gapi/gtype_traits.hpp>
#include <opencv2/gapi/util/compiler_hints.hpp>
#include <opencv2/gapi/gtransform.hpp>

Classes

struct  cv::detail::CompileArgTag< cv::gapi::GKernelPackage >
 
struct  cv::detail::CompileArgTag< cv::gapi::use_only >
 
class  cv::gapi::GBackend
 
class  cv::gapi::GFunctor
 
struct  cv::GKernel
 
struct  cv::GKernelImpl
 
class  cv::gapi::GKernelPackage
 A container class for heterogeneous kernel implementation collections and graph transformations. More...
 
class  cv::GKernelType< typename, typename >
 
class  cv::GKernelType< K, std::function< R(Args...)> >
 
class  cv::GKernelTypeM< typename, typename >
 
class  cv::GKernelTypeM< K, std::function< std::tuple< R... >(Args...)> >
 
struct  cv::GTypeInfo
 
struct  std::hash< cv::gapi::GBackend >
 
class  cv::detail::KernelTypeMedium< typename, typename >
 
class  cv::detail::KernelTypeMedium< K, std::function< R(Args...)> >
 
class  cv::detail::KernelTypeMedium< K, std::function< std::tuple< R... >(Args...)> >
 
struct  cv::detail::MetaHelper< typename, typename, typename >
 
struct  cv::detail::MetaHelper< K, std::tuple< Ins... >, Out >
 
struct  cv::detail::MetaHelper< K, std::tuple< Ins... >, std::tuple< Outs... > >
 
struct  cv::detail::MetaType< T >
 
struct  cv::detail::MetaType< T >
 
struct  cv::detail::MetaType< cv::GArray< U > >
 
struct  cv::detail::MetaType< cv::GFrame >
 
struct  cv::detail::MetaType< cv::GMat >
 
struct  cv::detail::MetaType< cv::GMatP >
 
struct  cv::detail::MetaType< cv::GOpaque< U > >
 
struct  cv::detail::MetaType< cv::GScalar >
 
struct  cv::detail::NoTag
 
struct  cv::gapi::use_only
 cv::use_only() is a special combinator which hints G-API to use only kernels specified in cv::GComputation::compile() (and not to extend kernels available by default with that package). More...
 
struct  cv::detail::Yield< T >
 
struct  cv::detail::Yield< cv::GArray< U > >
 
struct  cv::detail::Yield< cv::GMat >
 
struct  cv::detail::Yield< cv::GMatP >
 
struct  cv::detail::Yield< cv::GOpaque< U > >
 
struct  cv::detail::Yield< cv::GScalar >
 
struct  cv::detail::Yield< GFrame >
 

Namespaces

 cv
 "black box" representation of the file storage associated with a file on disk.
 
 cv::detail
 
 cv::gapi
 

Macros

#define __WRAP_VAARGS(x)   x
 
#define COMBINE_SIGNATURE(...)   __VA_ARGS__
 
#define G_API_OP   G_TYPED_KERNEL
 
#define G_API_OP_M   G_API_OP
 
#define G_TYPED_KERNEL(Class, ...)
 
#define G_TYPED_KERNEL_HELPER(Class, API, Id)
 
#define G_TYPED_KERNEL_HELPER_10(Class, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, Id)   G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10), Id)
 
#define G_TYPED_KERNEL_HELPER_2(Class, _1, _2, Id)   G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2), Id)
 
#define G_TYPED_KERNEL_HELPER_3(Class, _1, _2, _3, Id)   G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3), Id)
 
#define G_TYPED_KERNEL_HELPER_4(Class, _1, _2, _3, _4, Id)   G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4), Id)
 
#define G_TYPED_KERNEL_HELPER_5(Class, _1, _2, _3, _4, _5, Id)   G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5), Id)
 
#define G_TYPED_KERNEL_HELPER_6(Class, _1, _2, _3, _4, _5, _6, Id)   G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5, _6), Id)
 
#define G_TYPED_KERNEL_HELPER_7(Class, _1, _2, _3, _4, _5, _6, _7, Id)   G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5, _6, _7), Id)
 
#define G_TYPED_KERNEL_HELPER_8(Class, _1, _2, _3, _4, _5, _6, _7, _8, Id)   G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5, _6, _7, _8), Id)
 
#define G_TYPED_KERNEL_HELPER_9(Class, _1, _2, _3, _4, _5, _6, _7, _8, _9, Id)   G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5, _6, _7, _8, _9), Id)
 
#define G_TYPED_KERNEL_M   G_TYPED_KERNEL
 
#define GET_G_TYPED_KERNEL(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, NAME, ...)   NAME
 

Typedefs

using cv::GCtors = std::vector< detail::HostCtor >
 
using cv::GKinds = std::vector< cv::detail::OpaqueKind >
 
using cv::GShapes = std::vector< GShape >
 
using cv::GTypesInfo = std::vector< GTypeInfo >
 
template<typename T >
using cv::detail::is_nongapi_type = std::is_same< T, typename MetaType< T >::type >
 

Functions

GKernelPackage cv::gapi::combine (const GKernelPackage &lhs, const GKernelPackage &rhs)
 
template<typename... Ps>
GKernelPackage cv::gapi::combine (const GKernelPackage &a, const GKernelPackage &b, Ps &&... rest)
 Combines multiple G-API kernel packages into one. More...
 
template<typename T >
std::enable_if<!is_nongapi_type< T >::value, typename MetaType< T >::type >::type cv::detail::get_in_meta (const GMetaArgs &in_meta, const GArgs &, int idx)
 
template<typename T >
std::enable_if< is_nongapi_type< T >::value, T >::type cv::detail::get_in_meta (const GMetaArgs &, const GArgs &in_args, int idx)
 
template<typename... KK>
GKernelPackage cv::gapi::kernels ()
 Create a kernel package object containing kernels and transformations specified in variadic template argument. More...
 
template<typename... FF>
GKernelPackage cv::gapi::kernels (FF &... functors)
 
bool cv::gapi::operator!= (const GBackend &lhs, const GBackend &rhs)
 

Macro Definition Documentation

◆ __WRAP_VAARGS

#define __WRAP_VAARGS (   x)    x

◆ COMBINE_SIGNATURE

#define COMBINE_SIGNATURE (   ...)    __VA_ARGS__

◆ G_API_OP

#define G_API_OP   G_TYPED_KERNEL

◆ G_API_OP_M

#define G_API_OP_M   G_API_OP

◆ G_TYPED_KERNEL

#define G_TYPED_KERNEL (   Class,
  ... 
)
Value:
G_TYPED_KERNEL_HELPER)(Class, __VA_ARGS__)) \
#define G_TYPED_KERNEL_HELPER_7(Class, _1, _2, _3, _4, _5, _6, _7, Id)
Definition: gkernel.hpp:325
#define G_TYPED_KERNEL_HELPER_5(Class, _1, _2, _3, _4, _5, Id)
Definition: gkernel.hpp:319
#define G_TYPED_KERNEL_HELPER_10(Class, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, Id)
Definition: gkernel.hpp:334
#define G_TYPED_KERNEL_HELPER_4(Class, _1, _2, _3, _4, Id)
Definition: gkernel.hpp:316
#define G_TYPED_KERNEL_HELPER(Class, API, Id)
Definition: gkernel.hpp:304
#define GET_G_TYPED_KERNEL(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, NAME,...)
Definition: gkernel.hpp:290
#define G_TYPED_KERNEL_HELPER_2(Class, _1, _2, Id)
Definition: gkernel.hpp:310
#define __WRAP_VAARGS(x)
Definition: gkernel.hpp:293
#define G_TYPED_KERNEL_HELPER_8(Class, _1, _2, _3, _4, _5, _6, _7, _8, Id)
Definition: gkernel.hpp:328
#define G_TYPED_KERNEL_HELPER_9(Class, _1, _2, _3, _4, _5, _6, _7, _8, _9, Id)
Definition: gkernel.hpp:331
#define G_TYPED_KERNEL_HELPER_3(Class, _1, _2, _3, Id)
Definition: gkernel.hpp:313
#define G_TYPED_KERNEL_HELPER_6(Class, _1, _2, _3, _4, _5, _6, Id)
Definition: gkernel.hpp:322

Declares a new G-API Operation. See Kernel API for more details.

Parameters
Classtype name for this operation.

◆ G_TYPED_KERNEL_HELPER

#define G_TYPED_KERNEL_HELPER (   Class,
  API,
  Id 
)
Value:
G_ID_HELPER_BODY(Class, Id) \
public G_ID_HELPER_CLASS(Class)
Definition: gkernel.hpp:262

Helper for G_TYPED_KERNEL declares a new G-API Operation. See Kernel API for more details.

Parameters
Classtype name for this operation.
APIan std::function<>-like signature for the operation; return type is a single value or a tuple of multiple values.
Idstring identifier for the operation. Must be unique.

◆ G_TYPED_KERNEL_HELPER_10

#define G_TYPED_KERNEL_HELPER_10 (   Class,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  _9,
  _10,
  Id 
)    G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10), Id)

◆ G_TYPED_KERNEL_HELPER_2

#define G_TYPED_KERNEL_HELPER_2 (   Class,
  _1,
  _2,
  Id 
)    G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2), Id)

◆ G_TYPED_KERNEL_HELPER_3

#define G_TYPED_KERNEL_HELPER_3 (   Class,
  _1,
  _2,
  _3,
  Id 
)    G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3), Id)

◆ G_TYPED_KERNEL_HELPER_4

#define G_TYPED_KERNEL_HELPER_4 (   Class,
  _1,
  _2,
  _3,
  _4,
  Id 
)    G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4), Id)

◆ G_TYPED_KERNEL_HELPER_5

#define G_TYPED_KERNEL_HELPER_5 (   Class,
  _1,
  _2,
  _3,
  _4,
  _5,
  Id 
)    G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5), Id)

◆ G_TYPED_KERNEL_HELPER_6

#define G_TYPED_KERNEL_HELPER_6 (   Class,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  Id 
)    G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5, _6), Id)

◆ G_TYPED_KERNEL_HELPER_7

#define G_TYPED_KERNEL_HELPER_7 (   Class,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  Id 
)    G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5, _6, _7), Id)

◆ G_TYPED_KERNEL_HELPER_8

#define G_TYPED_KERNEL_HELPER_8 (   Class,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  Id 
)    G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5, _6, _7, _8), Id)

◆ G_TYPED_KERNEL_HELPER_9

#define G_TYPED_KERNEL_HELPER_9 (   Class,
  _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  _9,
  Id 
)    G_TYPED_KERNEL_HELPER(Class, COMBINE_SIGNATURE(_1, _2, _3, _4, _5, _6, _7, _8, _9), Id)

◆ G_TYPED_KERNEL_M

#define G_TYPED_KERNEL_M   G_TYPED_KERNEL

Declares a new G-API Operation. See Kernel API for more details.

Deprecated:
This macro is deprecated in favor of G_TYPED_KERNEL that is used for declaring any G-API Operation.
Parameters
Classtype name for this operation.

◆ GET_G_TYPED_KERNEL

#define GET_G_TYPED_KERNEL (   _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  _9,
  _10,
  _11,
  NAME,
  ... 
)    NAME