OpenCV 4.12.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()。 此模板函式以型別列表(variadic 模板)的形式獲取核心實現,並在其之上生成核心程式包。

還可以透過程式設計方式生成核心程式包,從一個空程式包開始(使用預設建構函式建立),然後透過呼叫 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流程中的“右側”程式包
返回
一個新的核心程式包。

此類文件由以下檔案生成