VPI - 视觉编程接口

3.2 版本

动态重映射

通过用户提供的映射图像,将输入图像的像素动态地重映射到输出图像。 更多...

函数

VPIStatus vpiCreateDynamicRemap (uint64_t backends, VPIPayload *payload)
 动态重映射 算法创建负载 (payload)。 更多...
 
VPIStatus vpiSubmitDynamicRemap (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage input, VPIImage output, VPIImage map, VPIInterpolationType inputInterpolation, VPIInterpolationType mapInterpolation, VPIBorderExtension border, uint64_t flags)
 动态重映射 操作提交到流 (stream)。 更多...
 

详细描述

通过用户提供的映射图像,将输入图像的像素动态地重映射到输出图像。

它是动态的,因为它允许动态更新映射图像,作为常规的异步流有序操作。

有关更多详细信息和使用示例,请参阅 动态重映射

函数文档

◆ vpiCreateDynamicRemap()

VPIStatus vpiCreateDynamicRemap ( uint64_t  backends,
VPIPayload payload 
)

#include <vpi/algo/DynamicRemap.h>

动态重映射 算法创建负载 (payload)。

此函数分配动态重映射算法所需的所有资源,并将返回的负载 (payload) 绑定到给定的流 (stream)。

参数
[输入]backends有资格执行该算法的 VPI 后端 (backends)。
[输出]payload指向接收创建句柄的负载 (payload) 变量的指针。
  • 它不能为 NULL。
返回值
VPI_ERROR_INVALID_ARGUMENTpayload 为 NULL。
VPI_ERROR_INVALID_ARGUMENTwarpMap 为 NULL。
VPI_ERROR_INVALID_ARGUMENTbackends 指的是无效的后端。
VPI_ERROR_NOT_IMPLEMENTED给定后端不支持该算法。
VPI_ERROR_INVALID_CONTEXT当前上下文已销毁。
VPI_ERROR_OUT_OF_MEMORY无法分配所需资源。
VPI_ERROR_INVALID_OPERATION后端在当前上下文中未启用。
VPI_SUCCESS操作执行成功。

◆ vpiSubmitDynamicRemap()

VPIStatus vpiSubmitDynamicRemap ( VPIStream  stream,
uint64_t  backend,
VPIPayload  payload,
VPIImage  input,
VPIImage  output,
VPIImage  map,
VPIInterpolationType  inputInterpolation,
VPIInterpolationType  mapInterpolation,
VPIBorderExtension  border,
uint64_t  flags 
)

#include <vpi/algo/DynamicRemap.h>

动态重映射 操作提交到流 (stream)。

动态重映射通过映射 (map) 将值从输入复制到输出,使用两个采样步骤:(1)在映射中采样控制点值;(2)在输入中采样像素值。以下公式总结了两个采样步骤:output(i, j) = input(map(i, j));其中每个采样步骤都有自己的插值。

参数
[输入]stream操作将排队到其中的流 (stream)。
  • 它不能为 NULL。
  • 流 (stream) 必须启用将执行该算法的后端 (backends)。
[输入]backend将执行该算法的后端 (backend)。
  • 它必须是在负载 (payload) 创建期间指定的后端,或者为 0 以简写形式使用其后端。
[输入]payloadvpiCreateDynamicRemap 创建的负载 (payload)。
[输入]input要重映射的图像。
[输出]output存储重映射后的图像。
  • 它不能为 NULL。
  • 它必须启用将执行该算法的后端 (backends)。
  • 它必须与输入图像具有相同的格式。
  • 它可以具有与输入和映射 (map) 不同的尺寸。
[输出]map存储输出坐标到输入图像的映射。
  • 它不能为 NULL。
  • 它必须启用将执行该算法的后端 (backends)。
  • 它必须具有以下格式:VPI_IMAGE_FORMAT_2F32
  • 它可以具有与输入和输出不同的尺寸。
[输入]inputInterpolation从输入中获取值时要使用的插值方法。有效值
[输入]mapInterpolation从映射 (map) 中获取值时要使用的插值方法。有效值
[输入]border如果重映射的坐标落在输入图像之外,则选择什么值。
[输入]flags控制标志。
  • 有效值是一个或多个标志的组合
    • 0 : 默认运算符模式,即,采样与像素中心对齐,映射 (map) 值是输入中绝对的、非归一化的位置。
    • VPI_SAMPLING_ALIGNED_TO_CORNER : 连续空间域中像素的采样可以位于左上角或中心。 如果给定,则在左上角进行采样,否则(默认)在像素中心进行采样。
    • VPI_RELATIVE_MAP : 如果给定,则映射 (map) 值作为要应用于每个输出位置以从输入中获取值的相对偏移量,否则(默认)值作为输入中的绝对位置。
    • VPI_NORMALIZED_MAP : 如果给定,则映射 (map) 值在 [-1, 1] 范围内归一化,用于绝对位置或相对偏移量,否则(默认)映射 (map) 值是非归一化的。
返回值
VPI_ERROR_INVALID_ARGUMENTstream 为 NULL。
VPI_ERROR_INVALID_ARGUMENTinputmapoutput 为 NULL。
VPI_ERROR_INVALID_ARGUMENTpayload 不是使用 vpiCreateDynamicRemap 生成的。
VPI_ERROR_INVALID_ARGUMENTinputoutput 必须具有相同的格式。
VPI_ERROR_INVALID_ARGUMENT不支持 border
VPI_ERROR_INVALID_ARGUMENTflags 具有无效的组合。
VPI_ERROR_INVALID_PAYLOAD_TYPEpayload 无效。
VPI_ERROR_INVALID_OPERATION所需的后端在 streaminputoutputmap 中未启用。
VPI_SUCCESS操作执行成功。