OpenCV  4.10.0
开源计算机视觉库
正在加载...
正在搜索...
无匹配项
公有成员函数 | 所有成员列表
cv::GCompiled 类参考

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

#include <opencv2/gapi/gcompiled.hpp>

cv::GCompiled 的协作图

公有成员函数

 GCompiled ()
 构造一个空对象。
 
bool canReshape () const
 检查底层后端是否支持 reshape。
 
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

检查底层后端是否支持 reshape。

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

◆ metas()

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

此图编译到的元数据的向量。

返回值
除非reshape不受支持,否则返回值与传递给 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 开始,图中的某些内核可能具有其内部状态(请参见 GAPI_OCV_KERNEL_ST 以了解 OpenCV 后端)。在这种情况下,如果用户开始使用此 GCompiled 处理另一个视频流,则需要调用此方法以让内核将其内部状态重新初始化到新视频流。

◆ reshape()

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

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

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

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

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