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

用于异构内核实现集合和图形转换的容器类。更多…

#include <opencv2/gapi/gkernel.hpp>

cv::GKernelPackage 的协作图

公有成员函数

std::vector< cv::gapi::GBackend > backends () const
 列出包含在包中的所有后端。
 
std::vector< std::string > get_kernel_ids () const
 返回包中包含的内核 ID 向量。
 
const std::vector< GTransform > & get_transformations () const
 返回包中包含的转换向量。
 
template<typename KImpl >
void include ()
 将新的内核实现或新的转换 KImpl 放入包中。
 
void include (const cv::gapi::GBackend &backend, const std::string &kernel_id)
 根据其后端和 ID 将新的内核添加到内核包中。
 
void include (const cv::gapi::GFunctor &functor)
 
template<typename KImpl >
bool includes () const
 测试此内核包中是否包含特定的内核实现 KImpl。
 
template<typename KAPI >
bool includesAPI () const
 
template<typename KAPI >
cv::gapi::GBackend lookup () const
 查找内核(按其 API)
 
template<typename KAPI >
void remove ()
 从包中移除所有实现给定 API 的内核。
 
void remove (const cv::gapi::GBackend &backend)
 从包中移除与给定后端关联的所有内核。
 
GAPI_WRAP std::size_t size () const
 返回包中内核的总数(包含所有后端)。
 

友元

GKernelPackage cv::gapi::combine (const GKernelPackage &lhs, const GKernelPackage &rhs)
 基于lhsrhs 创建一个新的包。
 

详细描述

用于异构内核实现集合和图形转换的容器类。

GKernelPackage 是一个特殊的容器类,它存储内核实现和图形转换。此类的对象被创建并传递给 cv::GComputation::compile() 以指定要使用的内核以及在编译后的图形中要应用的转换。GKernelPackage 可能包含不同后端的内核,例如异构。

创建内核包最简单的方法是使用函数 cv::gapi::kernels()。此模板函数采用类型列表(可变参数模板)形式的内核实现,并在其之上生成内核包。

也可以通过编程方式生成内核包,从空包(使用默认构造函数创建)开始,然后通过调用 GKernelPackage::include() 来填充内核。请注意,此方法也是模板方法,因为 G-API 内核和转换实现是类型,而不是对象。

最后,可以使用函数 cv::gapi::combine() 将两个内核包组合成一个新的包。

成员函数文档

◆ backends()

std::vector< cv::gapi::GBackend > cv::GKernelPackage::backends ( ) const

列出包含在包中的所有后端。

返回
后端向量

◆ get_kernel_ids()

std::vector< std::string > cv::GKernelPackage::get_kernel_ids ( ) const

返回包中包含的内核 ID 向量。

返回
包中包含的内核 ID 向量

◆ get_transformations()

const std::vector< GTransform > & cv::GKernelPackage::get_transformations ( ) const

返回包中包含的转换向量。

返回
包中包含的转换向量

◆ include() [1/3]

template<typename KImpl >
void cv::GKernelPackage::include ( )
inline

将新的内核实现或新的转换 KImpl 放入包中。

◆ include() [2/3]

void cv::GKernelPackage::include ( const cv::gapi::GBackend & backend,
const std::string & kernel_id )

根据其后端和 ID 将新的内核添加到内核包中。

参数
backend与内核关联的后端
kernel_id内核的名称/ID

◆ include() [3/3]

void cv::GKernelPackage::include ( const cv::gapi::GFunctor & functor)

◆ includes()

template<typename KImpl >
bool cv::GKernelPackage::includes ( ) const
inline

测试此内核包中是否包含特定的内核实现 KImpl。

另请参见
includesAPI()
注意
不能应用于转换
返回
如果存在这样的内核,则为 true,否则为 false。

◆ includesAPI()

template<typename KAPI >
bool cv::GKernelPackage::includesAPI ( ) const
inline

检查包是否按 API 类型包含内核 API 的任何实现。

◆ lookup()

template<typename KAPI >
cv::gapi::GBackend cv::GKernelPackage::lookup ( ) const
inline

查找内核(按其 API)

返回与 ID 对应的实现。如果找不到任何内容则抛出异常。

返回
托管匹配内核实现的后端。

◆ remove() [1/2]

template<typename KAPI >
void cv::GKernelPackage::remove ( )
inline

从包中移除所有实现给定 API 的内核。

如果没有任何内核实现给定的接口,则不执行任何操作。

◆ remove() [2/2]

void cv::GKernelPackage::remove ( const cv::gapi::GBackend & backend)

从包中移除与给定后端关联的所有内核。

如果包中没有此后端的内核,则不执行任何操作。

参数
backend要移除内核的后端

◆ size()

GAPI_WRAP std::size_t cv::GKernelPackage::size ( ) const
Python
cv.GKernelPackage.size() -> retval

返回包中内核的总数(包含所有后端)。

返回
包中内核的数量

友元和相关符号文档

◆ cv::gapi::combine

GKernelPackage cv::gapi::combine ( const GKernelPackage & lhs,
const GKernelPackage & rhs )
friend

基于lhsrhs 创建一个新的包。

参数
lhs流程中的“左侧”包
rhs流程中的“右侧”包
返回
一个新的内核包。

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