![]() |
OpenCV 4.12.0
開源計算機視覺
|
表示一個已編譯的計算(圖)。只能用於為其編譯的影像/資料格式和解析度,但有一些例外。更多...
#include <opencv2/gapi/gcompiled.hpp>
公共成員函式 | |
| GCompiled () | |
| 構造一個空物件。 | |
| bool | canReshape () const |
| 檢查底層後端是否支援 reshape。 | |
| const GMetaArgs & | metas () 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 GMetaArgs & | outMetas () 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物件是完全獨立的,可以併發使用。
| cv::GCompiled::GCompiled | ( | ) |
構造一個空物件。
| bool cv::GCompiled::canReshape | ( | ) | const |
檢查底層後端是否支援 reshape。
| const GMetaArgs & cv::GCompiled::metas | ( | ) | const |
此圖編譯時使用的元資料向量。
|
顯式 |
檢查編譯物件是否有效(非空)
| void cv::GCompiled::operator() | ( | const std::vector< cv::Mat > & | ins, |
| const std::vector< cv::Mat > & | outs ) |
執行具有任意數量輸入/輸出的計算。
這是一個過載的成員函式,為了方便起見而提供。它與上述函式的不同之處僅在於它接受的引數。
ins/outs 向量中的元素數量必須與用於定義源GComputation的輸入/輸出數量匹配。
| void cv::GCompiled::operator() | ( | cv::Mat | in, |
| cv::Scalar & | out ) |
執行一元計算。
這是一個過載的成員函式,為了方便起見而提供。它與上述函式的不同之處僅在於它接受的引數。
| in | 一元計算的輸入 cv::Mat |
| 輸出3D仿射變換矩陣,尺寸為\(3 \times 4\),形式如下 | 一元計算過程的輸出 cv::Scalar。 |
| 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。 |
| const GMetaArgs & cv::GCompiled::outMetas | ( | ) | const |
圖輸出的元資料描述向量。
| void cv::GCompiled::prepareForNewStream | ( | ) |
| void cv::GCompiled::reshape | ( | const GMetaArgs & | inMetas, |
| const GCompileArgs & | args ) |
調整已編譯的圖以支援新的影像解析度。
如果發生錯誤,則丟擲異常。
| inMetas | 要調整的新元資料。向量大小和元資料形狀必須與計算的協議匹配。 |
| args | 要使用的編譯引數。 |