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

シリアライズおよびデシリアライズのためのG-API関数とクラス。 続きを読む...

詳細説明

シリアライズおよびデシリアライズのためのG-API関数とクラス。

名前空間

namespace  cv::gapi
 
namespace  cv::gapi::s11n
 この名前空間には G-API のシリアライズおよびデシリアライズ用の関数とデータ構造が含まれる。
 

クラス

struct  cv::gapi::s11n::detail::NotImplemented
 
struct  cv::gapi::s11n::detail::S11N< T >
 この構造体はカスタム型に対するシリアライズ処理を実装できるようにする。 続きを読む...
 

関数

cv::GRunArg cv::gapi::bind (cv::GRunArgP &out)
 グラフ実行中に利用可能な出力GRunArgsPを、シリアライズ可能なGRunArgsにラップする。
 
cv::GRunArgsP cv::gapi::bind (cv::GRunArgs &out_args)
 デシリアライズされた出力GRunArgsを、GCompiledで利用可能なGRunArgsPにラップする。
 
template<>
cv::GComputation cv::gapi::deserialize (const std::vector< char > &bytes)
 バイト配列から GComputation をデシリアライズする。
 
template<typename T , typename... Types>
std::enable_if< std::is_same< T, GCompileArgs >::value, GCompileArgs >::type cv::gapi::deserialize (const std::vector< char > &bytes)
 バイト配列から、テンプレートで指定された型の GCompileArgs をデシリアライズする。
 
template<typename T , typename AtLeastOneAdapterT , typename... AdapterTypes>
std::enable_if< std::is_same< T, GRunArgs >::value, GRunArgs >::type cv::gapi::deserialize (const std::vector< char > &bytes)
 バイト配列から、RMatMediaFrame オブジェクトを含む GRunArgs を(存在する場合は)デシリアライズする。
 
std::vector< char > cv::gapi::serialize (const cv::GCompileArgs &ca)
 
std::vector< char > cv::gapi::serialize (const cv::GComputation &c)
 GComputation で表現されたグラフをバイト配列にシリアライズする。
 
std::vector< char > cv::gapi::serialize (const cv::GMetaArgs &ma)
 
std::vector< char > cv::gapi::serialize (const cv::GRunArgs &ra)
 
std::vector< char > cv::gapi::serialize (const std::vector< std::string > &vs)
 

関数詳解

◆ bind() [1/2]

cv::GRunArg cv::gapi::bind ( cv::GRunArgP & out)

#include <opencv2/gapi/garg.hpp>

グラフ実行中に利用可能な出力GRunArgsPを、シリアライズ可能なGRunArgsにラップする。

GRunArgsPは値へのポインタであるため、シリアライズするには実際の値にバインドする必要があり、この関数がそれを行う。

使用例:

std::vector<cv::GRunArgP> graph_outs;
cv::GRunArgs out_args;
for (auto &&out : graph_outs) {
out_args.emplace_back(cv::gapi::bind(out));
}
const auto sargsout = cv::gapi::serialize(out_args);
引数
outグラフ実行中に利用可能な出力GRunArgsP。
戻り値
シリアライズ可能なGRunArgsにラップされた、同じGRunArgsP。
参照
serialize

◆ bind() [2/2]

cv::GRunArgsP cv::gapi::bind ( cv::GRunArgs & out_args)

#include <opencv2/gapi/garg.hpp>

デシリアライズされた出力GRunArgsを、GCompiledが使用できるGRunArgsPにラップする。

デシリアライズから変更可能な出力引数を取得することは不可能であるため、この関数でラップする必要がある。

使用例:

std::vector<char> bytes;
auto graph = cv::gapi::deserialize<cv::GComputation>(bytes);
auto meta = cv::gapi::deserialize<cv::GMetaArgs>(bytes);
compd = graph.compile(std::move(meta), cv::compile_args());
auto in_args = cv::gapi::deserialize<cv::GRunArgs>(bytes);
auto out_args = cv::gapi::deserialize<cv::GRunArgs>(bytes);
compd(std::move(in_args), cv::gapi::bind(out_args));
引数
out_argsデシリアライズされたGRunArgs。
戻り値
GRunArgsPにラップされた、同じGRunArgs。
参照
デシリアライズ

◆ deserialize() [1/3]

template<>
cv::GComputation cv::gapi::deserialize ( const std::vector< char > & bytes)
inline

#include <opencv2/gapi/s11n.hpp>

バイト配列からGComputationをデシリアライズする。

さらに多くの例については別のオーバーロードを確認すること。

引数
bytesシリアライズされたバイト列のベクトル。
戻り値
デシリアライズされたGComputationオブジェクト。

◆ deserialize() [2/3]

template<typename T , typename... Types>
std::enable_if< std::is_same< T, GCompileArgs >::value, GCompileArgs >::type cv::gapi::deserialize ( const std::vector< char > & bytes)
inline

#include <opencv2/gapi/s11n.hpp>

テンプレートで指定された型のGCompileArgsを、バイト配列からデシリアライズする。

覚え書き
GCompileArgs内のカスタム型をデシリアライズ可能にするには、cv::gapi::s11n::detail::S11Nテンプレートの特殊化を提供する必要がある。
引数
bytesGCompileArgsオブジェクトをデシリアライズするためのバイトのベクトル。
戻り値
GCompileArgsオブジェクト。
参照
GCompileArgs cv::gapi::s11n::detail::S11N

◆ deserialize() [3/3]

template<typename T , typename AtLeastOneAdapterT , typename... AdapterTypes>
std::enable_if< std::is_same< T, GRunArgs >::value, GRunArgs >::type cv::gapi::deserialize ( const std::vector< char > & bytes)
inline

#include <opencv2/gapi/s11n.hpp>

バイト配列から、RMatMediaFrameオブジェクトが含まれていればそれらを含むGRunArgsをデシリアライズする。

アダプタ型はテンプレートで指定される。

覚え書き
適切に使用するには、指定されたアダプタ型がそのdeserialize()メソッドをオーバーロードしている必要がある。
引数
bytesGRunArgsオブジェクトをデシリアライズするためのバイトのベクトル。
戻り値
RMatMediaFrameオブジェクトが含まれていればそれらを含むGRunArgs。
参照
RMat MediaFrame

◆ serialize() [1/5]

std::vector< char > cv::gapi::serialize ( const cv::GCompileArgs & ca)

#include <opencv2/gapi/s11n.hpp>

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

引数
caシリアライズするGCompileArgs。

◆ serialize() [2/5]

std::vector< char > cv::gapi::serialize ( const cv::GComputation & c)

#include <opencv2/gapi/s11n.hpp>

GComputationで表されるグラフをバイト配列にシリアライズする。

さらに多くの例については別のオーバーロードを確認すること。

引数
cシリアライズするGComputation
戻り値
シリアライズされたバイト列のベクトル。

◆ serialize() [3/5]

std::vector< char > cv::gapi::serialize ( const cv::GMetaArgs & ma)

#include <opencv2/gapi/s11n.hpp>

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

引数
maシリアライズするGMetaArgs。

◆ serialize() [4/5]

std::vector< char > cv::gapi::serialize ( const cv::GRunArgs & ra)

#include <opencv2/gapi/s11n.hpp>

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

引数
raシリアライズするGRunArgs。

◆ serialize() [5/5]

std::vector< char > cv::gapi::serialize ( const std::vector< std::string > & vs)

#include <opencv2/gapi/s11n.hpp>

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

引数
vsシリアライズするstd::vector<std::string>。