图内绘图函数。 更多…
图内绘图函数。
- 注意
- 这是一个正在开发中的功能,API 可能会在将来的版本中更改。
G-API 可以使用通用操作和一组渲染基元进行一些图内绘图。与传统的 OpenCV 不同,在 G-API 中,用户需要形成一个用于绘图的基元渲染列表。此列表可以手动构建或在图中生成。此列表将传递给特殊操作或函数,在其中解释所有基元并将其应用于图像。
例如,在一个复杂的流水线中,检测到的对象列表可以在图内转换为cv::gapi::wip::draw::Rect基元列表,以使用边界框突出显示这些对象,或者检测到的面部列表可以在图内转换为cv::gapi::wip::draw::Mosaic基元列表,以隐藏敏感内容或保护隐私。
与任何其他操作一样,G-API 中的渲染也可以由不同的后端重新实现。目前仅提供基于 OpenCV 的后端。
除了图级操作外,还提供了常规的(直接的)类似 OpenCV 的函数 – 请参见cv::gapi::wip::draw::render()。这些函数只是常规 G-API 的包装器,并动态构建渲染图,因此将编译参数作为参数。
目前,此 API 更面向机器,而不是面向人类。其主要目的是将一组特定于领域的物体转换为要绘制的基元列表。例如,要生成这样的图片
需要如下生成渲染列表
int main(
int argc,
char *argv[])
{
if (argc < 2) {
std::cerr << "需要文件名" << std::endl;
return 1;
}
std::vector<draw::Prim> prims;
prims.emplace_back(draw::Circle{
{400,72},
32,
coral,
0
});
prims.emplace_back(draw::Text{
"来自 G-API 的问候!",
{64,96},
font,
1.0,
blue,
2,
false
});
prims.emplace_back(draw::Rect{
{16,48,400,72},
green,
2,
0
});
prims.emplace_back(draw::Mosaic{
{320,96,128,32},
16,
0
});
draw::render(test, prims);
return 0;
}
N 维密集数组类
**定义** mat.hpp:829
用于指定图像或矩形大小的模板类。
**定义** types.hpp:335
#define CV_8UC3
**定义** interface.h:90
CV_EXPORTS_W bool imwrite(const String &filename, InputArray img, const std::vector< int > ¶ms=std::vector< int >())
将图像保存到指定文件。
@ FONT_HERSHEY_DUPLEX
正常大小的无衬线字体(比 FONT_HERSHEY_SIMPLEX 更复杂)
**定义** imgproc.hpp:903
@ LINE_8
8 连通线
**定义** imgproc.hpp:893
@ FILLED
**定义** imgproc.hpp:891
int main(int argc, char *argv[])
**定义** highgui_qt.cpp:3