G-API Graph Compilation Arguments#

Compilation arguments: data structures controlling the compilation process. View details

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#

Classes#

Name

Description

struct cv::gapi::plaidml::config

This structure represents the basic parameters for the experimental PlaidML backend. View details

struct cv::GCompileArg

Represents an arbitrary compilation argument. View details

struct cv::GFluidOutputRois

This structure allows to control the output image region which Fluid backend will produce in the graph. View details

struct cv::GFluidParallelFor

This structure allows to customize the way how Fluid executes parallel regions. View details

struct cv::GFluidParallelOutputRois

This structure forces Fluid backend to generate multiple parallel output regions in the graph. These regions execute in parallel. View details

class cv::GKernelPackage

A container class for heterogeneous kernel implementation collections and graph transformations. View details

struct cv::gapi::GNetPackage

A container class for network configurations. Similar to GKernelPackage. Use cv::gapi::networks() to construct this object. View details

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). View details

Typedef Documentation#

GCompileArgs#

typedef std::vector< GCompileArg > cv::GCompileArgs

#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()#

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:

cv::gapi::kernels Node1 cv::gapi::kernels Node2 cv::GKernelPackage ::include Node1->Node2 Node3 cv::util::suppress _unused_warning Node1->Node3

cv::gapi::kernels Node1 cv::gapi::kernels Node2 cv::GKernelPackage ::include Node1->Node2 Node3 cv::util::suppress _unused_warning Node1->Node3

kernels()#

template<typename... FF>
GKernelPackage cv::gapi::kernels(FF &… functors)

#include <opencv2/gapi/gkernel.hpp>

Here is the call graph for this function:

cv::gapi::kernels Node1 cv::gapi::kernels Node2 cv::GKernelPackage ::include Node1->Node2 Node3 cv::util::suppress _unused_warning Node1->Node3

cv::gapi::kernels Node1 cv::gapi::kernels Node2 cv::GKernelPackage ::include Node1->Node2 Node3 cv::util::suppress _unused_warning Node1->Node3

operator+=()#

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

#include <opencv2/gapi/gcommon.hpp>