透视变换接口,将二维的图片投影到一个三维视平面上,然后再转换到二维坐标下。支持异步调用。
当前仅支持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错误”章节解决。