OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
未找到匹配项
G-API 序列化功能

用于序列化和反序列化的 G-API 函数和类。 更多…

详细描述

用于序列化和反序列化的 G-API 函数和类。

命名空间

命名空间 cv::gapi
 
命名空间 cv::gapi::s11n
 此命名空间包含 G-API 序列化和反序列化函数以及数据结构。
 

结构体 cv::gapi::s11n::detail::NotImplemented
 
结构体 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 中。
 
模板<>
cv::GComputation cv::gapi::deserialize (const std::vector< char > &bytes)
 从字节数组反序列化 GComputation
 
模板<typename T , typename... Types>
std::enable_if< std::is_same< T, GCompileArgs >::value, GCompileArgs >::type cv::gapi::deserialize (const std::vector< char > &bytes)
 从字节数组反序列化模板中指定的类型的 GCompileArgs。
 
模板<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)
 反序列化 GRunArgs,包括任何 RMatMediaFrame 对象(如果有)从字节数组。
 
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

◆ deserialize() [1/3]

模板<>
cv::GComputation cv::gapi::deserialize ( const std::vector< char > & bytes)
内联

#include <opencv2/gapi/s11n.hpp>

从字节数组反序列化 GComputation

查看不同的重载以获取更多示例。

参数
bytes序列化的字节向量。
返回值
反序列化的 GComputation 对象。

◆ deserialize() [2/3]

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

#include <opencv2/gapi/s11n.hpp>

从字节数组反序列化模板中指定的类型的 GCompileArgs。

注意
必须提供 cv::gapi::s11n::detail::S11N 模板特化,才能使 GCompileArgs 中的自定义类型可反序列化。
参数
bytes用于从中反序列化 GCompileArgs 对象的字节向量。
返回值
GCompileArgs 对象。
参见
GCompileArgs cv::gapi::s11n::detail::S11N

◆ deserialize() [3/3]

模板<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)
内联

#include <opencv2/gapi/s11n.hpp>

反序列化 GRunArgs,包括任何 RMatMediaFrame 对象(如果有)从字节数组。

适配器类型在模板中指定。

注意
为了正确使用,指定的适配器类型必须重载其 deserialize() 方法。
参数
bytes用于反序列化的字节向量,从中反序列化 GRunArgs 对象。
返回值
GRunArgs 对象,包含 RMatMediaFrame 对象(如有)。
参见
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>。