OpenCV 4.12.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
顯式

檢查編譯物件是否有效(非空)

返回
如果物件是可執行的(有效的),則為 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
輸出3D仿射變換矩陣,尺寸為\(3 \times 4\),形式如下一元計算過程的輸出 cv::Mat

◆ operator()() [3/6]

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

執行一元計算。

這是一個過載的成員函式,為了方便起見而提供。它與上述函式的不同之處僅在於它接受的引數。

引數
in一元計算的輸入 cv::Mat
輸出3D仿射變換矩陣,尺寸為\(3 \times 4\),形式如下一元計算過程的輸出 cv::Scalar

◆ operator()() [4/6]

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

執行二元計算。

這是一個過載的成員函式,為了方便起見而提供。它與上述函式的不同之處僅在於它接受的引數。

引數
in1二元計算的第一個輸入 cv::Mat
in2二元計算的第二個輸入 cv::Mat
輸出3D仿射變換矩陣,尺寸為\(3 \times 4\),形式如下二元計算過程的輸出 cv::Mat

◆ operator()() [5/6]

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

執行二元計算。

這是一個過載的成員函式,為了方便起見而提供。它與上述函式的不同之處僅在於它接受的引數。

引數
in1二元計算的第一個輸入 cv::Mat
in2二元計算的第二個輸入 cv::Mat
輸出3D仿射變換矩陣,尺寸為\(3 \times 4\),形式如下二元計算過程的輸出 cv::Scalar

◆ operator()() [6/6]

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

執行已編譯的計算,通用版本。

引數
ins要處理的輸入向量。
outs要生成的輸出向量。

輸入/輸出向量必須具有與cv::GComputation協議(在其構造時)中定義的元素數量相同的元素。元素的形狀也必須符合協議(例如,cv::Mat需要在宣告cv::GMat作為輸入的地方傳遞,等等)。否則會生成執行時異常。

輸出向量中的物件可能保持為空(如cv::Mat) – G-API 將自動將輸出物件初始化為正確的格式。

注意
不要手動構造 GRunArgs/GRunArgsP 物件,請使用cv::gin()/cvgout()包裝器。

◆ outMetas()

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

圖輸出的元資料描述向量。

返回
具有圖輸出物件的格式/解析度的向量,透過形成此計算的操作從輸入元資料向量自動推斷。
注意
從具有不同輸入 metas 的相同 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要使用的編譯引數。

此類文件是從以下檔案生成的