VPI - 视觉编程接口

3.2 版本

透视变换

对图像应用透视变换。 更多...

类型定义

typedef float VPIPerspectiveTransform[3][3]
 表示 2D 透视变换。 更多...
 

函数

VPIStatus vpiSubmitPerspectiveWarp (VPIStream stream, uint64_t backend, VPIImage input, const VPIPerspectiveTransform xform, VPIImage output, const VPIWarpGrid *grid, VPIInterpolationType interp, VPIBorderExtension border, uint64_t flags)
 向流提交一个 透视变换 操作。 更多...
 

详细描述

对图像应用透视变换。

有关更多详细信息和用法示例,请参阅 透视变换

类型定义文档

◆ VPIPerspectiveTransform

typedef float VPIPerspectiveTransform[3][3]

#include <vpi/Types.h>

表示 2D 透视变换。

[vx]   [a11 a12 tx] [ux]
[vy] = [a21 a22 ty] [uy]
[vw]   [ p0  p1  p] [ 1]
u'x  = vx/vw
u'y  = vy/vw

在这些公式中,

  • ux, uy 是源图像中的非齐次坐标。
  • u'x, u'y 是目标图像中的非齐次坐标。
  • vx, vy, vw 是目标图像中的齐次坐标。
  • a11, a12, a21, a22 是具有变换线性分量的 2x2 非奇异矩阵。
  • tx, ty 是变换的平移分量。
  • p0, p1, p 是变换的投影分量。p 通常为 1。

定义于文件 Types.h 的第 689 行。

函数文档

◆ vpiSubmitPerspectiveWarp()

VPIStatus vpiSubmitPerspectiveWarp ( VPIStream  stream,
uint64_t  backend,
VPIImage  input,
const VPIPerspectiveTransform  xform,
VPIImage  output,
const VPIWarpGrid grid,
VPIInterpolationType  interp,
VPIBorderExtension  border,
uint64_t  flags 
)

#include <vpi/algo/PerspectiveWarp.h>

向流提交一个 透视变换 操作。

参数
[in]stream操作将被排队的流。
  • 不得为 NULL。
  • 流必须已启用将执行算法的后端。
[in]backend有资格执行算法的 VPI 后端。
[in]input要进行变换的输入图像。
[in]xform要应用的变换。
[out]output写入变换后图像的输出图像。尺寸可能与 input 不同。
  • 不得为 NULL。
  • 图像必须已启用将执行算法的后端。
  • 必须与输入图像具有相同的格式。
  • 尺寸必须为偶数。
[in]grid输出网格,用于建立性能/质量权衡。 密集的网格将产生最佳质量,但性能较慢。 网格必须根据所需的性能/质量标准进行设置。 传递 NULL 作为使用密集网格的快捷方式。
  • CPU 和 CUDA 仅接受密集网格。
  • 网格尺寸必须与 output 尺寸匹配。
[in]interp当源坐标未精确落在像素中心时使用的插值模式。
[in]border用于超出输入边界的采样的边界扩展。
[in]flags修改算法行为的标志。
  • 可以是以下一个或多个值的组合
    • 0:默认值,变换将输入映射到输出
    • VPI_WARP_INVERSE:变换将输出反向映射到输入。
    • VPI_PRECISE:精确但可能较慢的实现。
返回值
VPI_ERROR_INVALID_ARGUMENTstream 为 NULL。
VPI_ERROR_INVALID_ARGUMENTinputoutput 为 NULL。
VPI_ERROR_INVALID_ARGUMENTxform 为 NULL。
VPI_ERROR_INVALID_ARGUMENT无效的 flags
VPI_ERROR_INVALID_ARGUMENTinputoutput 必须具有相同的格式。
VPI_ERROR_INVALID_ARGUMENT不支持 border
VPI_ERROR_INVALID_ARGUMENTbackend 无效或未知。
VPI_ERROR_INVALID_ARGUMENT不支持 input 和/或 output 尺寸。
VPI_ERROR_INVALID_ARGUMENT后端不支持 grid 配置。
VPI_ERROR_INVALID_ARGUMENTgrid 尺寸与输出图像的尺寸不匹配。
VPI_ERROR_INVALID_IMAGE_FORMAT不支持的图像格式。
VPI_ERROR_NOT_IMPLEMENTED给定后端不支持透视变换算法。
VPI_ERROR_INVALID_OPERATION后端硬件不可用。
VPI_ERROR_INVALID_OPERATION所需的后端未在 streaminputoutput 中启用。
VPI_SUCCESS操作执行成功。