OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。

コンパイル済みの計算(グラフ)を表す。いくつかの例外を除き、コンパイル時に対象とした画像/データ形式および解像度でのみ使用できる。続き...

#include <opencv2/gapi/gcompiled.hpp>

Collaboration diagram for cv::GCompiled:

公開メンバ関数

 GCompiled ()
 空のオブジェクトを構築する。
 
bool canReshape () const
 基盤となるバックエンドがリシェイプをサポートするかどうかを確認する。
 
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 から生成された2つの異なる GCompiled オブジェクトは完全に独立しており、並行して使用できる。

参照
GStreamingCompiled

構築子と解体子の詳解

◆ GCompiled()

cv::GCompiled::GCompiled ( )

空のオブジェクトを構築する。

メンバ関数詳解

◆ canReshape()

bool cv::GCompiled::canReshape ( ) const

基盤となるバックエンドがリシェイプをサポートするかどうかを確認する。

戻り値
サポートされている場合は true、そうでなければ false。

◆ metas()

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

このグラフがコンパイルされた対象のメタデータのベクトル。

戻り値
リシェイプがサポートされていない限り、戻り値はこのコンパイル済みオブジェクトを生成するために cv::GComputation::compile() に渡されたものと同じベクトルである。そうでない場合は、reshape() に最後に渡されたメタデータベクトル(その呼び出しが成功した場合)である。

◆ operator bool()

cv::GCompiled::operator bool ( ) const
explicit

コンパイル済みオブジェクトが有効(非空)かどうかを確認する

戻り値
オブジェクトが実行可能(有効)であれば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
out単項計算処理のための出力 cv::Mat

◆ operator()() [3/6]

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

単項計算を実行する。

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
in単項計算のための入力 cv::Mat
out単項計算処理用の出力 cv::Scalar

◆ operator()() [4/6]

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

二項計算を実行する。

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
in1二項計算のための1番目の入力 cv::Mat
in2二項計算のための2番目の入力 cv::Mat
out二項計算処理のための出力 cv::Mat

◆ operator()() [5/6]

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

二項計算を実行する。

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
in1二項計算のための1番目の入力 cv::Mat
in2二項計算のための2番目の入力 cv::Mat
out二項計算処理用の出力 cv::Scalar

◆ operator()() [6/6]

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

コンパイル済み計算を実行する汎用バージョン。

引数
ins処理する入力のベクトル。
outs生成する出力のベクトル。

入力/出力ベクトルは、cv::GComputation のプロトコルで定義された要素数(その構築時点における要素数)と同じでなければならない。各要素の形状もプロトコルに準拠している必要がある(例えば、cv::GMat が入力として宣言された箇所には cv::Mat を渡す必要がある、など)。そうでない場合は実行時例外が発生する。

出力ベクトル内のオブジェクトは(cv::Mat のように)空のままでよい。G-API が出力オブジェクトを適切な形式に自動的に初期化する。

覚え書き
GRunArgs/GRunArgsP オブジェクトを手動で構築せず、代わりに cv::gin()/cvgout() ラッパーを使用すること。

◆ outMetas()

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

グラフ出力のメタデータ記述のベクトル。

戻り値
グラフの出力オブジェクトのフォーマット/解像度を持つベクトル。この計算を構成する演算によって、入力メタデータベクトルから自動的に推論される。
覚え書き
異なる入力メタを持つ同一の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使用するコンパイル引数。

このクラス詳解は次のファイルから抽出されました: