OpenCV  4.10.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进程中的“右侧”包
返回值
新的内核包。

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