OpenCV 4.11.0
开源计算机视觉
加载中...
搜索中...
无匹配项
cv::GCompiled 类参考

表示已编译的计算(图)。只能与它为其编译的图像/数据格式和分辨率一起使用,但有一些例外。更多...

#include <opencv2/gapi/gcompiled.hpp>

cv::GCompiled 的协作图

公共成员函数

 GCompiled ()
 构造一个空对象。
 
bool canReshape () const
 检查底层后端是否支持重塑。
 
const GMetaArgsmetas () 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 GMetaArgsoutMetas () 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 对象是完全独立的,可以并发使用。

另请参阅
GStreamingCompiled

构造函数和析构函数文档

◆ GCompiled()

cv::GCompiled::GCompiled ( )

构造一个空对象。

成员函数文档

◆ canReshape()

bool cv::GCompiled::canReshape ( ) const

检查底层后端是否支持重塑。

返回值
如果支持则返回 true,否则返回 false。

◆ metas()

const GMetaArgs & cv::GCompiled::metas ( ) const

此图编译的目标元数据向量。

返回值
除非不支持重塑,否则返回值与传递给cv::GComputation::compile()以生成此已编译对象的向量相同。否则,它是传递给reshape()的最新元数据向量(如果该调用成功)。

◆ operator bool()

cv::GCompiled::operator bool ( ) const
explicit

检查已编译的对象是否有效(非空)。

返回值
如果对象可运行(有效),则返回 true,否则返回 false。

◆ operator()() [1/6]

void cv::GCompiled::operator() ( const std::vector< cv::Mat > & ins,
const std::vector< cv::Mat > & outs )

使用任意数量的输入/输出执行计算。

这是一个重载的成员函数,为了方便提供。它与上面的函数的不同之处仅在于它接受的参数。

参数
ins要由计算处理的输入cv::Mat 对象向量。
outs计算生成的输出 cv::Mat 对象向量。

ins/outs 向量的元素数量必须与用于定义源 GComputation 的输入/输出数量匹配。

◆ operator()() [2/6]

void cv::GCompiled::operator() ( cv::Mat in,
cv::Mat & out )

执行一元计算。

这是一个重载的成员函数,为了方便提供。它与上面的函数的不同之处仅在于它接受的参数。

参数
in一元计算的输入 cv::Mat
out一元计算过程的输出 cv::Mat

◆ operator()() [3/6]

void cv::GCompiled::operator() ( cv::Mat in,
cv::Scalar & out )

执行一元计算。

这是一个重载的成员函数,为了方便提供。它与上面的函数的不同之处仅在于它接受的参数。

参数
in一元计算的输入 cv::Mat
out一元计算过程的输出 cv::Scalar

◆ operator()() [4/6]

void cv::GCompiled::operator() ( cv::Mat in1,
cv::Mat in2,
cv::Mat & out )

执行二元计算。

这是一个重载的成员函数,为了方便提供。它与上面的函数的不同之处仅在于它接受的参数。

参数
in1二元计算的第一个输入 cv::Mat
in2二元计算的第二个输入 cv::Mat
out二元计算过程的输出 cv::Mat

◆ operator()() [5/6]

void cv::GCompiled::operator() ( cv::Mat in1,
cv::Mat in2,
cv::Scalar & out )

执行二元计算。

这是一个重载的成员函数,为了方便提供。它与上面的函数的不同之处仅在于它接受的参数。

参数
in1二元计算的第一个输入 cv::Mat
in2二元计算的第二个输入 cv::Mat
out二元计算过程的输出 cv::Scalar

◆ operator()() [6/6]

void cv::GCompiled::operator() ( GRunArgs && ins,
GRunArgsP && outs )

运行已编译的计算,通用版本。

参数
ins要处理的输入向量。
outs要生成的输出向量。

输入/输出向量的元素数量必须与 cv::GComputation 协议中定义的数量相同(在其构建时)。元素的形状也必须符合协议(例如,在声明 cv::GMat 为输入的地方,需要传递 cv::Mat,依此类推)。否则将生成运行时异常。

输出向量中的对象可以保持为空(例如 cv::Mat)——G-API 将自动将输出对象初始化为正确的格式。

注意
不要手动构造 GRunArgs/GRunArgsP 对象,请改用 cv::gin()/cvgout() 包装器。

◆ outMetas()

const GMetaArgs & cv::GCompiled::outMetas ( ) const

图输出的元数据描述向量。

返回值
包含图的输出对象的格式/分辨率的向量,由构成此计算的操作根据输入元数据向量自动推断。
注意
从具有不同输入元数据的同一 cv::GComputiation 图生成的 GCompiled 对象可能在此向量中返回不同的值。

◆ prepareForNewStream()

void cv::GCompiled::prepareForNewStream ( )

为新的视频流准备内部内核状态。

GCompiled 对象可用于逐帧处理视频流。在这种情况下,对每个图像帧分别调用 GCompiled。从 OpenCV 4.4 开始,图中的一些内核可能具有其内部状态(对于 OpenCV 后端,请参见 GAPI_OCV_KERNEL_ST)。在这种情况下,如果用户使用此 GCompiled 开始处理另一个视频流,则需要调用此方法以让内核将其内部状态重新初始化到新的视频流。

◆ reshape()

void cv::GCompiled::reshape ( const GMetaArgs & inMetas,
const GCompileArgs & args )

重塑已编译的图以支持新的图像分辨率。

如果发生错误,则抛出异常。

参数
inMetas要重塑的新元数据。向量大小和元数据形状必须与计算的协议匹配。
args要使用的编译参数。

此类的文档是从以下文件生成的