Skip to main content

Serialize

ToHost

函数功能

将Image类内保存的图像内存数据转移到Host侧。

函数原型

APP_ERROR ToHost();

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: Image

ToDevice

函数功能

将Image类内保存的图像内存数据转移到Device侧。

函数原型

APP_ERROR ToDevice(const int32_t devId);

参数说明

参数名输入/输出说明
devId输入要转移到的设备ID。

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: Image

ConvertToTensor

函数功能

将DVPP侧Image类转换为Device侧Tensor类,或将Host侧Image转换为Host侧Tensor,转换后的Tensor类对象的数据类型为uint8。

  • 若转换失败,则会返回空的Tensor实例。
  • 若因内存不足或无法识别芯片等异常场景,导致Tensor类构造失败的话,则会抛出异常。

:::note 说明

  • “withStride”参数为“true”时,Tensor对象会保留Image对象的补边信息。为减少内存拷贝,提高运行效率,此时返回的Tensor对象与Image对象共享数据内存,同时在该场景下,Image对象的数据内存会与Tensor对象的数据内存相互影响,例如:在Image对象释放后,对应的Tensor对象中的数据将变为无效内存数据。
  • ConvertToTensor()为无参数接口时,返回的Tensor对象会保留Image对象的补边信息并存在batch维度(即NHWC,其中batch维度N = 1)。 :::

函数原型

Tensor ConvertToTensor(bool withStride, bool formatNHWC);
Tensor ConvertToTensor();

参数说明

参数名输入/输出说明
withStride输入bool类型,指定是否保留补边信息。
- 若为“true”,则表示保留补边信息,与Image对象共享数据内存。
- 若为“false”,表示不保留补边信息,不与Image对象共享数据内存。
formatNHWC输入bool类型,指定转换得到的Tensor是否有batch维度。
- 若为“true”,则指定返回Tensor中存在batch维度。
- 若为“false”,则指定返回Tensor中没有batch维度。

返回参数说明

数据结构说明
TensorTensor类,具体请参见Tensor

父主题: Image

Serialize

函数功能

将图像内存数据及元数据序列化后落盘保存为文件。

函数原型

APP_ERROR Serialize(const std::string& filePath, bool forceOverwrite = false);

参数说明

参数名输入/输出说明
filePath输入序列化后的数据文件保存路径(包括文件名称),不支持软链接。
forceOverwrite输入保存时是否强制覆盖已有文件,默认为“false”,不覆盖。

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: Image

Unserialize

函数功能

Serialize中保存的落盘数据文件加载到内存中,需指定文件名称及具体路径。

函数原型

APP_ERROR Unserialize(const std::string& filePath);

参数说明

参数名输入/输出说明
filePath输入落盘数据文件保存路径,输入文件大小支持范围为(0, 4GB]。

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: Image

DumpBuffer

函数功能

将图像内存数据落盘到二进制文件,需要指定文件名称及具体路径。

函数原型

APP_ERROR DumpBuffer(const std::string& filePath, bool forceOverwrite = false);

参数说明

参数名输入/输出说明
filePath输入落盘数据文件路径(包含文件名称),不支持软链接。
forceOverwrite输入保存时是否强制覆盖已有文件,默认为“false”,不覆盖。

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: Image

TensorToImage

函数功能

将Host侧Tensor类转换为Host侧Image类,或将Device侧Tensor类转换为DVPP侧Image类。

在转换过程中,会对Image的宽进行16向上对齐、对Image的高进行2向上对齐,转换后的Image类对象将存在补边区域。

转换后的Image类可调用成员函数GetSize()返回Size类对象查看补边后的宽、高,调用成员函数GetOriginalSize()返回Size类对象查看图片原始宽、高。

例如:

  • Tensor类对象对应的图片宽、高为500、499时,转换得到的Image类对象在补边后,通过GetOriginalSize()可获得宽、高分别为500、499,通过GetSize()可获得宽、高分别为512、500。
  • Tensor类对象对应的图片宽、高为512、500时,转换得到的Image类对象不需要补边,即转换后的Image类对象宽、高仍为512、500。

函数原型

APP_ERROR TensorToImage(const Tensor& inputTensor, Image& outImg, const ImageFormat& imageFormat)

参数说明

参数名输入/输出说明
inputTensor输入Tensor类,输入张量。输入需满足以下要求。
- 元素类型需为Uint8类型。
- Tensor的维度需为2(YUV400格式时)、3、4。
- Tensor的宽、高、通道数需与“imageFormat”相匹配。
outImg输出Image类,输出图片,其内存分配在DVPP侧。
imageFormat输入ImageFormat类,指定图片的格式,需与“inputTensor”数据所对应的图片格式相匹配。

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: Image

在线提单