DumpBuffer
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
类说明
ImageProcessor类,作为图像处理类,主要开放图像编解码、缩放和抠图等接口。
ImageProcessor对象不支持在多线程中并发使用,如需多线程使用同一个ImageProcessor对象,用户需自行保证加锁互斥。
:::note 说明 ImageProcessor类涉及申请Device侧资源,与MxDeInit的作用域冲突,因此,其作用域不能大于或等于MxDeInit的作用域。 :::
关于真实图片宽高与对齐后的图片宽高说明
如图1所示,由于硬件限制,ImageProcessor使用过程中存在部分限制,为了加快读写速度,图片长宽需要对齐到指定大小,但不影响有效区域(采用向右、向下填充无效数据的方式,对齐到指定大小)。
在对图片进行缩放等操作时,ImageProcessor将会以图片原始的高宽进行处理。
图1 对齐宽高与真实宽高

父主题: ImageProcessor
ImageProcessor
函数功能
ImageProcessor类的构造函数,支持异步执行。
若因内存不足,或无法识别芯片等构造失败的场景会抛出std::runtime_error异常。
图像处理接口(解码除外)的输入Image类包含的内存数据均需要在Device侧,用户使用ImageProcessor类内的接口获取的Image对象内存数据已经在Device侧,并且无需用户管理释放。
函数原型
ImageProcessor(const int32_t deviceId = 0);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| deviceId | 输入 | 图像处理类部署的芯片,默认为0号芯片。 取值范围:[0, 识别到的芯片个数 - 1]。 |
父主题: ImageProcessor
在线提单