~Image
MxDeInit
函数功能
全局去初始化,释放Device等相关资源,需与全局初始化接口(MxInit)配套使用。
:::note 说明 涉及申请Device侧资源的类(Tensor、Model、Image、ImageProcessor、VideoEncoder和VideoDecoder)与MxDeInit的作用域冲突,因此,这些类的作用域不能大于或等于MxDeInit的作用域。 :::
函数原型
APP_ERROR MxDeInit();
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: 初始化和去初始化
类说明
Image数据类,作为图像处理(包含图片编解码)的输入与输出的数据结构。默认用户构造输入数据在Host侧,数据在设备间的转移由ImageProcessor类来进行管理,用户无需进行内存数据的转移操作。图像类的校验会在ImageProcessor类进行。
:::note 说明 Image类涉及申请Device侧资源,与MxDeInit的作用域冲突,因此,其作用域不能大于或等于MxDeInit的作用域。 :::
父主题: Image
Image
函数功能
Image类的构造函数,可支持以下方式进行创建。若因内存不足,或无法识别芯片等构造失败的场景,则会抛出异常。
- 创建空Image对象。
- 创建自定义内存数据的图片,图片格式类型默认为ImageFormat::YUV_SP_420,设备ID默认为Host侧(deviceId = -1)。
- 创建带对齐高、宽和有效高、宽,自定义内存数据的图片,使用时需满足以下条件。
-
“deviceId”(设备ID)需为有效值,取值范围为[-1, 识别到的Device数-1],否则接口会调用失败。
-
“format”支持以下图片格式类型。
YUV_400 = 0,RGB_888 = 12,BGR_888 = 13,ARGB_8888 = 14,ABGR_8888 = 15,RGBA_8888 = 16,BGRA_8888 = 17, -
“dataSize”需要与有效宽高或对齐后宽高一致,计算公式可参考:dataSize = 宽 * 高 * 通道数。
-
:::note 说明 用户申请Host内存后,如需在Device侧构造Image对象,请参考如下操作进行。
- 在Host侧构造Image对象,“deviceId”为“-1”(与“imageData”内存位置一致,设置为Host侧)。
- 构造后的Image对象使用ToDevice(deviceId)方法,将内存迁移至Device侧。 :::
函数原型
Image();
Image(const std::shared_ptr<uint8_t> imageData, const uint32_t dataSize, const int32_t deviceId = -1, const Size imageSize = DEFAULT_IMAGE_SIZE, const ImageFormat format = ImageFormat::YUV_SP_420);
Image(const std::shared_ptr<uint8_t> imageData, const uint32_t dataSize, const int32_t deviceId, const std::pair<Size, Size> imageSizeInfo, const ImageFormat format);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| imageData | 输入 | 用户构造的输入内存,该内存由用户管理申请和释放,不能为空指针(nullptr)。 |
| dataSize | 输入 | 用户输入内存的大小,需要与实际内存数据大小一致。 |
| imageSize | 输入 | 图像的宽高,默认为(0, 0)。 若用户自申请Device侧的内存,请设置实际内存数据对应的图像高宽数据。 |
| imageSizeInfo | 输入 | 图像有效宽高与对齐后宽高的组合,有效宽、高应不超过对齐后的宽、高,输入方式参见如下。 cpp<br>std::pair<Size, Size> imageSizeInfo(有效宽高,对齐后的宽高)<br>- 有效宽、高取值范围为[6, 8192]。 - 对齐后宽、高取值范围为[16, 8192],其中宽为16的倍数、高为2的倍数。 |
| format | 输入 | 图片格式类型。 |
| deviceId | 输入 | 用户输入内存的设备ID。若用户自申请Device侧的内存,请输入对应的deviceId。 取值范围:[-1, 识别到的Device数-1]。 该值需要与“imageData”为同一侧内存(Host侧为“-1”,Device侧为具体设备ID),否则后续业务存在风险和异常。 |
父主题: Image
~Image
函数功能
Image类的默认析构函数。
函数原型
~Image()
父主题: Image
operator =
函数功能
Image类重载等号运算符,对成员变量进行深拷贝,对内存数据进行浅拷贝,引用计数加一。
函数原型
Image &Image::operator = (const Image &img)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| img | 输入 | 输入的Image类。 |
父主题: Image
GetDeviceId
函数功能
获取Image对象的deviceId。
函数原型
int32_t GetDeviceId() const;
返回参数说明
| 数据结构 | 说明 |
|---|---|
| int32_t | Image的设备号。 |
父主题: Image
GetOriginalData
函数功能
用于获取有效图片内存数据。
当前支持以下图像类型。
YUV_400 = 0,
RGB_888 = 12,
BGR_888 = 13,
ARGB_8888 = 14,
ABGR_8888 = 15,
RGBA_8888 = 16,
BGRA_8888 = 17,
函数原型
std::shared_ptr<uint8_t> GetOriginalData() const;
返回参数说明
| 数据结构 | 说明 |
|---|---|
| std::shared_ptr<uint8_t> | 返回内存地址(智能指针)。 |
父主题: Image
SetImageOriginalSize
函数功能
设置有效图片数据的宽高。
需根据Image实际输入的图像数据进行设置,图像数据不可为空。
函数原型
APP_ERROR SetImageOriginalSize(const Size whSize);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| whSize | 输入 | 有效宽高,单位为像素,有效宽、高取值范围为[6, 8192]且不超过对齐后的宽、高。 |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: Image
在线提单