WarpAffineHiper
函数功能
仿射变换接口,将二维的图片进行缩放、平移、旋转。支持异步调用。
当前仅支持Atlas 推理系列产品。
使用时需满足以下条件:
- 接口中输入输出Tensor必须在Device或DVPP侧且各参数(stream及数据内存)需位于同一Device中。
- 同步场景下,数据内存所在Device需与初始化的Device一致。
- 输出张量支持为空Tensor(当为空Tensor时,默认输出shape与输入张量的shape一致)。
- 当输入Tensor数据类型为Float32或Uint8时,推荐尺寸为480P(640*480),此时计算性能优于cv::warpAffine在CPU上的性能。
函数原型
APP_ERROR WarpAffineHiper(const Tensor &src, Tensor &dst, const std::vector<std::vector<float>> transMatrix,const PaddingMode paddingMode, const float borderValue,const WarpAffineMode warpAffineMode, AscendStream& stream=AscendStream::DefaultStream());
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
src |
输入 |
Tensor类,输入张量,需要仿射变换的张量,支持uint8、float16和float32类型,维度要求NHWC(四维),其中“N”(张量个数)为[1,16],“C”(通道数)为[1,4],张量宽度支持[32,2160],张量高度支持[32,3840],数据内存必须在Device侧或DVPP侧。不支持传入空Tensor。 |
dst |
输出 |
Tensor类,输出张量。若为非空Tensor,需调用Tensor.Malloc()接口提前分配内存。维度要求NHWC(四维),要求数据类型、所在芯片ID、“N”(张量个数)和“C”(通道数)与输入张量一致,张量宽度支持[32,2160],张量高度支持[32,3840],数据内存必须在Device侧或DVPP侧。当为空Tensor时,默认输出shape与输入张量的shape一致。 |
transMatrix |
输入 |
转换矩阵,size必须为2x3格式。接口内部会在第三行补充(0,0,1)形成3X3的矩阵,该矩阵行列式的值不能为0。 |
paddingMode |
输入 |
枚举值类,对应补边模式,当前仅支持常量值(即PADDING_CONST)。具体请参见PaddingMode。 |
borderValue |
输入 |
补边的值,范围为[0, 255]。 |
WarpAffineMode |
输入 |
枚举值类,对应插值方式,当前仅支持双线性插值(即INTER_LINEAR)。具体请参见WarpAffineMode。 |
stream |
输入 |
AscendStream类型,默认值为“AscendStream::DefaultStream()”。当参数值为默认值时,接口为同步操作,其他情况下,接口为异步操作。 |
返回参数说明
数据结构 |
说明 |
---|---|
APP_ERROR |
程序执行返回的错误码,请参考APP_ERROR说明。 |