Functions for in-graph drawing. More...
Modules | |
Drawing primitives | |
Drawing operations and functions | |
Detailed Description
Functions for in-graph drawing.
- Note
- This is a Work in Progress functionality and APIs may change in the future releases.
G-API can do some in-graph drawing with a generic operations and a set of rendering primitives. In contrast with traditional OpenCV, in G-API user need to form a rendering list of primitives to draw. This list can be built manually or generated within a graph. This list is passed to special operations or functions where all primitives are interpreted and applied to the image.
For example, in a complex pipeline a list of detected objects can be translated in-graph to a list of cv::gapi::wip::draw::Rect primitives to highlight those with bounding boxes, or a list of detected faces can be translated in-graph to a list of cv::gapi::wip::draw::Mosaic primitives to hide sensitive content or protect privacy.
Like any other operations, rendering in G-API can be reimplemented by different backends. Currently only an OpenCV-based backend is available.
In addition to the graph-level operations, there are also regular (immediate) OpenCV-like functions are available – see cv::gapi::wip::draw::render(). These functions are just wrappers over regular G-API and build the rendering graphs on the fly, so take compilation arguments as parameters.
Currently this API is more machine-oriented than human-oriented. The main purpose is to translate a set of domain-specific objects to a list of primitives to draw. For example, in order to generate a picture like this:
Rendering list needs to be generated as follows: