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 |
|---|---|
|
This structure represents the basic parameters for the experimental PlaidML backend. View details |
|
Represents an arbitrary compilation argument. View details |
|
This structure allows to control the output image region which Fluid backend will produce in the graph. View details |
|
This structure allows to customize the way how Fluid executes parallel regions. View details |
|
This structure forces Fluid backend to generate multiple parallel output regions in the graph. These regions execute in parallel. View details |
|
A container class for heterogeneous kernel implementation collections and graph transformations. View details |
|
A container class for network configurations. Similar to GKernelPackage. Use cv::gapi::networks() to construct this object. View details |
|
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:
kernels()#
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 )
#include <opencv2/gapi/gcommon.hpp>