WarpPerspective

函数功能

透视变换接口,将二维的图片投影到一个三维视平面上,然后再转换到二维坐标下。支持异步调用。

当前仅支持Atlas 推理系列产品

使用时需满足以下条件:

函数原型

1
APP_ERROR WarpPerspective(const Tensor &src, Tensor &dst, const std::vector<std::vector<float>> transMatrix, const PaddingMode paddingMode, const float borderValue, const WarpPerspectiveMode warpPerspectiveMode, 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(四维),其中“N”(张量个数)为[1,16],“C”(通道数)为[1,4],张量宽度和张量高度为输入张量与转换矩阵计算的实际结果为准,数据内存必须在Device侧或DVPP侧。要求数据类型、所在芯片ID、“N”(张量个数)和“C”(通道数)与输入张量一致。支持传入空Tensor(当为空Tensor时,默认输出shape与输入张量的shape一致)。

transMatrix

输入

转换矩阵,size必须为3x3格式。该矩阵行列式的值不能为“0”

paddingMode

输入

枚举值类,对应补边模式,当前仅支持常量值(即PADDING_CONST)。具体请参见PaddingMode

borderValue

输入

补边的值,范围为[0, 255]。

warpPerspectiveMode

输入

枚举值类,对应插值方式,当前仅支持双线性插值(即INTER_LINEAR)。具体请参见WarpPerspectiveMode

stream

输入

AscendStream类型,默认值为“AscendStream::DefaultStream()”。当参数值为默认值时,接口为同步操作,其他情况下,接口为异步操作。

返回参数说明

数据结构

说明

APP_ERROR

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

如果运行WarpPerspective接口出现“Synchronize stream execution failed”错误,请参考运行WarpAffineHiper或WarpPerspective接口出现Synchronize stream execution failed错误”章节解决。