ResizePaste
函数功能
图像缩放贴图接口,支持异步执行,使用该接口申请的Tensor内存无需用户管理,由内部管理释放。支持隐式内存分配。如果预贴图的大小不一致,需要先进行缩放。
当前仅支持Atlas 推理系列产品。
- 输入输出Tensor类支持的图像格式参考如下。
- 只支持Atlas 推理系列产品,图像格式只支持YVU_400、RGB_888,其中输入分辨率不超过(4096 * 4096)。
- “background”的真实分辨率范围:16 * 6 ~ 4096 * 4096。
- 参数“PasteRects”的最大分辨率:4096 * 4096,最小分辨率:10 * 6。
- “dst”若设置“keepMargin”为“true”,输出宽自动与16对齐。若“dst”宽度为16对齐且内存为DVPP侧,则复用输入“background”内存。
- 缩放后图片的宽高不能超出真实图片的[1/32 ,16]倍数区间。
- 输入贴图数量“inputPics”和贴图区域“PasteRects”需一一对应,且最大值为“256”。
- “inputPics”区域在结果图片中的宽为16对齐。
- “keepMargin”控制的为输出结果“dst”是否保留Tensor中无效的边界区域,如果“dst”复用“background”,“background”也会根据“keepMargin”值判断是否保留无效边界区域。默认值为“false”。
- 输入图像格式为“YUV_400”时,最小分辨率为18 * 6。
函数原型
APP_ERROR ResizePaste(const MxBase::Tensor &background, std::vector<MxBase::Tensor> &inputPics, std::vector<MxBase::Rect> &pasteRects, MxBase::Tensor &dst, bool keepMargin = false, MxBase::AscendStream &stream = MxBase::AscendStream::DefaultStream());
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
background |
输入 |
Tensor类,输入张量,被贴图的目标张量,支持uint8类型输入,维度支持HW(2维)、HWC(3维)张量,张量宽度支持[16,4096],高度支持[6,4096],灰度支持[18,4096],数据内存必须在Device侧或DVPP侧。 |
inputPics |
输入 |
std::vector<Tensor>类,输入张量,贴在目标张量上的使用张量组,支持uint8类型输入,维度支持HW(2维)、HWC(3维)张量,张量宽度支持[10,4096],高度支持[6,4096],灰度支持[18,4096],数据内存必须在Device侧或DVPP侧。 |
PasteRects |
输入 |
std::vector<Rect>类,被贴图坐标框,坐标框宽会向上16对齐,对齐后坐标框宽高不能超过背景图片“background”范围。 |
dst |
输出 |
Tensor类,输出张量,贴图结果张量,当“keepMargin”为“true”时结果自动16对齐。支持uint8类型输入,维度支持HW(2维)、HWC(3维)张量,张量宽度支持[10,4096],高度支持[6,4096],灰度支持[18,4096],数据内存必须在Device侧或DVPP侧。若“dst”宽度为16对齐且内存为DVPP侧,则复用输入“background”内存。 |
keepMargin |
输入 |
bool类,是否保留输出“dst”中无效边界区域。 |
stream |
输入 |
AscendStream类型,默认值为“AscendStream::DefaultStream()”。当参数值为默认值时,接口为同步操作,其他情况下,接口为异步操作。 |
返回参数说明
数据结构 |
说明 |
---|---|
APP_ERROR |
程序执行返回的错误码,请参考APP_ERROR说明。 |