OpenCV 4.10.0
开源计算机视觉库
|
表示一个已编译的计算(图)。只能用于它为其编译的图像/数据格式和分辨率,但也有一些例外情况。 更多...
#include <opencv2/gapi/gcompiled.hpp>
公有成员函数 | |
GCompiled () | |
构造一个空对象。 | |
bool | canReshape () const |
检查底层后端是否支持 reshape。 | |
const GMetaArgs & | metas () const |
此图编译到的元数据的向量。 | |
operator bool () const | |
检查已编译对象是否有效(非空)。 | |
void | operator() (const std::vector< cv::Mat > &ins, const std::vector< cv::Mat > &outs) |
使用任意数量的输入/输出执行计算。 | |
void | operator() (cv::Mat in, cv::Mat &out) |
执行一元计算。 | |
void | operator() (cv::Mat in, cv::Scalar &out) |
执行一元计算。 | |
void | operator() (cv::Mat in1, cv::Mat in2, cv::Mat &out) |
执行二元计算。 | |
void | operator() (cv::Mat in1, cv::Mat in2, cv::Scalar &out) |
执行二元计算。 | |
void | operator() (GRunArgs &&ins, GRunArgsP &&outs) |
运行已编译的计算,通用版本。 | |
const GMetaArgs & | outMetas () const |
图输出的元数据描述的向量。 | |
void | prepareForNewStream () |
为新的视频流准备内部内核状态。 | |
void | reshape (const GMetaArgs &inMetas, const GCompileArgs &args) |
重新调整已编译的图以支持新的图像分辨率。 | |
表示一个已编译的计算(图)。只能用于它为其编译的图像/数据格式和分辨率,但也有一些例外情况。
此类表示图编译的结果(调用 cv::GComputation::compile())。此类的对象实际上执行数据处理,图执行封装在该类的对象中。执行模型本身取决于在编译过程中使用的内核和后端,有关详细信息,请参阅 G-API 图编译参数。
通常,GCompiled 对象只能应用于它们为其编译的格式/分辨率的数据(请参阅 G-API 元数据描述符)。但是,如果底层后端允许,则可以对已编译的对象进行重新调整大小以处理不同分辨率的数据(图像),尽管格式和类型必须保持相同。
GCompiled 在语义上与 std::function<>
非常相似 - 运行它看起来像用户代码中的函数调用。
目前,GCompiled 对象不是可重入的 - 通常,这些对象是有状态的,因为图执行本身是一个有状态的过程,并且此状态现在保存在 GCompiled 的内存中(而不是进程堆栈上)。
同时,从单个 cv::GComputation 生成的两个不同的 GCompiled 对象是完全独立的,可以并发使用。
cv::GCompiled::GCompiled | ( | ) |
构造一个空对象。
bool cv::GCompiled::canReshape | ( | ) | const |
检查底层后端是否支持 reshape。
const GMetaArgs & cv::GCompiled::metas | ( | ) | const |
此图编译到的元数据的向量。
|
explicit |
检查已编译对象是否有效(非空)。
void cv::GCompiled::operator() | ( | const std::vector< cv::Mat > & | ins, |
const std::vector< cv::Mat > & | outs | ||
) |
使用任意数量的输入/输出执行计算。
这是一个重载成员函数,为方便起见提供。它与上面的函数的不同之处仅在于它接受哪些参数。
ins/outs 向量中的元素数量必须与用于定义源 GComputation 的输入/输出数量匹配。
void cv::GCompiled::operator() | ( | cv::Mat | in, |
cv::Scalar & | out | ||
) |
void cv::GCompiled::operator() | ( | cv::Mat | in1, |
cv::Mat | in2, | ||
cv::Scalar & | out | ||
) |
执行二元计算。
这是一个重载成员函数,为方便起见提供。它与上面的函数的不同之处仅在于它接受哪些参数。
in1 | 二元计算的第一个输入 cv::Mat |
in2 | 二元计算的第二个输入 cv::Mat |
out | 二元计算过程的输出 cv::Scalar。 |
const GMetaArgs & cv::GCompiled::outMetas | ( | ) | const |
图输出的元数据描述的向量。
void cv::GCompiled::prepareForNewStream | ( | ) |
void cv::GCompiled::reshape | ( | const GMetaArgs & | inMetas, |
const GCompileArgs & | args | ||
) |
重新调整已编译的图以支持新的图像分辨率。
如果发生错误,则抛出异常。
inMetas | 新的元数据用于重塑。向量大小和元数据形状必须与计算协议匹配。 |
args | 要使用的编译参数。 |