| OpenCV 5.0.0alpha Open Source Computer Vision

Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Functions
G-API Graph Compilation Arguments
G-API framework

Compilation arguments: data structures controlling the compilation process. More...

## Detailed Description

Compilation arguments: data structures controlling the compilation process.

G-API comes with a number of graph compilation options which can be passed to cv::GComputation::apply() or cv::GComputation::compile(). Known compilation options are listed in this page, while extra backends may introduce their own compilation options (G-API transparently accepts everything which can be passed to cv::compile_args(), it depends on underlying backends if an option would be interpreted or not).

For example, if an example computation is executed like this:

cv::GComputation sobelEdge(cv::GIn(in), cv::GOut(out));
sobelEdge.apply(input, output);

Extra parameter specifying which kernels to compile with can be passed like this:

cv::GKernelPackage kernels = cv::gapi::combine
(cv::gapi::core::fluid::kernels(),
cv::gapi::imgproc::fluid::kernels());
sobelEdge.apply(input, output, cv::compile_args(kernels));

## Namespaces
namespace | cv::gapi

## Classes
struct | cv::gapi::plaidml::config
| This structure represents the basic parameters for the experimental PlaidML backend. More...
struct | cv::GCompileArg
| Represents an arbitrary compilation argument. More...
struct | cv::GFluidOutputRois
| This structure allows to control the output image region which Fluid backend will produce in the graph. More...
struct | cv::GFluidParallelFor
| This structure allows to customize the way how Fluid executes parallel regions. More...
struct | cv::GFluidParallelOutputRois
| This structure forces Fluid backend to generate multiple parallel output regions in the graph. These regions execute in parallel. More...
class | cv::GKernelPackage
| A container class for heterogeneous kernel implementation collections and graph transformations. More...
struct | cv::gapi::GNetPackage
| A container class for network configurations. Similar to GKernelPackage. Use cv::gapi::networks() to construct this object. More...
struct | cv::gapi::use_only
| cv::gapi::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...

## Typedefs
using | cv::GCompileArgs = std::vector<GCompileArg>

## Functions
template<typename... Ts>
GCompileArgs | cv::compile_args (Ts &&... args)
| Wraps a list of arguments (a parameter pack) into a vector of compilation arguments (cv::GCompileArg).
template<typename... KK>
GKernelPackage | cv::gapi::kernels ()
| Create a kernel package object containing kernels and transformations specified in variadic template argument.
template<typename... FF>
GKernelPackage | cv::gapi::kernels (FF &... functors)
cv::GCompileArgs & | cv::operator+= (cv::GCompileArgs &lhs, const cv::GCompileArgs &rhs)

## Typedef Documentation

## ◆ GCompileArgs

using cv::GCompileArgs = std::vector<GCompileArg>

`#include <opencv2/gapi/gcommon.hpp>`

## Function Documentation

## ◆ compile_args()

template<typename... Ts>

GCompileArgs cv::compile_args | ( | Ts &&... | args | ) |

`#include <opencv2/gapi/gcommon.hpp>`

Wraps a list of arguments (a parameter pack) into a vector of compilation arguments (cv::GCompileArg).

## ◆ kernels() [1/2]

template<typename... KK>

GKernelPackage cv::gapi::kernels | ( |  | ) |

`#include <opencv2/gapi/gkernel.hpp>`

Create a kernel package object containing kernels and transformations specified in variadic template argument.

In G-API, kernel implementations and transformations are types. Every backend has its own kernel API (like GAPI_OCV_KERNEL() and GAPI_FLUID_KERNEL()) but all of that APIs define a new type for each kernel implementation.

Use this function to pass kernel implementations (defined in either way) and transformations to the system. Example:

cv::GKernelPackage pkg = cv::gapi::kernels
< CustomAdd
, CustomFilter2D
, CustomRGB2YUV
>();

Note that kernels() itself is a function returning object, not a type, so having `()` at the end is important – it must be a function call.

Here is the call graph for this function:

## ◆ kernels() [2/2]

template<typename... FF>

GKernelPackage cv::gapi::kernels | ( | FF &... | functors | ) |

`#include <opencv2/gapi/gkernel.hpp>`

Here is the call graph for this function:

## ◆ operator+=()

cv::GCompileArgs & cv::operator+= | ( | cv::GCompileArgs & | lhs,
|  | const cv::GCompileArgs & | rhs )
| inline

`#include <opencv2/gapi/gcommon.hpp>`