用于估计从前一帧图像到当前帧图像的运动向量的算法。 更多...
数据结构 | |
struct | VPIOpticalFlowDenseSGMParams |
用于半全局匹配的稠密光流参数。 更多... | |
函数 | |
VPIStatus | vpiCreateOpticalFlowDense (uint64_t backends, int32_t width, int32_t height, VPIImageFormat inputFmt, const int32_t *gridSize, int32_t numLevels, VPIOpticalFlowQuality quality, VPIPayload *payload) |
为 vpiSubmitOpticalFlowDense 创建负载。 更多... | |
VPIStatus | vpiSubmitOpticalFlowDense (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage prevImg, VPIImage curImg, VPIImage mvImg) |
在两个帧上运行稠密光流,输出运动向量。 更多... | |
VPIStatus | vpiSubmitOpticalFlowDensePyramid (VPIStream stream, uint64_t backend, VPIPayload payload, VPIPyramid prevPyr, VPIPyramid curPyr, VPIImage mvImg) |
在两个帧上运行稠密光流,输出运动向量。 更多... | |
VPIStatus | vpiOpticalFlowDenseGetSGMParams (VPIPayload payload, VPIOpticalFlowDenseSGMParams *sgmParams) |
检索在稠密光流负载中设置的半全局匹配参数。 更多... | |
VPIStatus | vpiOpticalFlowDenseSetSGMParams (VPIPayload payload, const VPIOpticalFlowDenseSGMParams *sgmParams) |
设置半全局匹配参数,供具有给定负载的稠密光流操作使用。 更多... | |
用于估计从前一帧图像到当前帧图像的运动向量的算法。
有关更多详细信息和用法示例,请参阅 稠密光流。
struct VPIOpticalFlowDenseSGMParams |
用于半全局匹配的稠密光流参数。
每个金字塔层级都可以与不同的参数关联。数组中的第一个值对应于底部(精细)层级,最后一个值对应于顶部(粗略)层级。
定义于文件 OpticalFlowDense.h 的第 259 行。
数据字段 | ||
---|---|---|
int32_t | p1[VPI_MAX_PYRAMID_LEVEL_COUNT] | 使用的半全局匹配算法的 P1 惩罚值。 仅由 OFA 后端使用,其他后端忽略。 |
int32_t | p2[VPI_MAX_PYRAMID_LEVEL_COUNT] | 使用的半全局匹配算法的 P2 惩罚值。 仅由 OFA 后端使用,其他后端忽略。 |
int32_t | p2Alpha[VPI_MAX_PYRAMID_LEVEL_COUNT] | 半全局匹配中使用的自适应 P2 的 Alpha 值。
|
int32_t | numPasses[VPI_MAX_PYRAMID_LEVEL_COUNT] | 半全局匹配的次数。
|
int8_t | includeDiagonals[VPI_MAX_PYRAMID_LEVEL_COUNT] | 启用/禁用半全局匹配中的对角线方向。
|
VPIStatus vpiCreateOpticalFlowDense | ( | uint64_t | backends, |
int32_t | width, | ||
int32_t | height, | ||
VPIImageFormat | inputFmt, | ||
const int32_t * | gridSize, | ||
int32_t | numLevels, | ||
VPIOpticalFlowQuality | quality, | ||
VPIPayload * | payload | ||
) |
#include <vpi/algo/OpticalFlowDense.h>
为 vpiSubmitOpticalFlowDense 创建负载。
[in] | backends | 有资格执行该算法的 VPI 后端。
| |||||||||
[in] | width,height | 当前图像和上一张图像的尺寸。输出尺寸取决于 gridSize 和输入尺寸。
| |||||||||
[in] | gridSize | 每个金字塔层级的网格大小数组。如果使用输入图像而不是金字塔,则 gridSize 指向使用的单个网格大小,就像它是用于只有一个层级的金字塔一样。数组中的第一个值对应于底部(精细)层级,最后一个值对应于顶部(粗略)层级。传递 1 允许使用稠密网格。如果为 2 或更大,则网格将是稀疏的。输出图像尺寸取决于 gridSize 中的第一个值和输入尺寸。
| |||||||||
[in] | numLevels | 要处理的金字塔层级数。当使用金字塔作为输入时,这指定要考虑的层级数。当使用图像时,numLevels 必须为 1。
| |||||||||
[in] | inputFmt | 当前和上一张图像/金字塔的格式。
| |||||||||
[in] | quality | 稠密光流算法的质量。 | |||||||||
[out] | payload | 指向接收创建的句柄的负载变量的指针。 |
VPI_IMAGE_FORMAT_INVALID | 不支持 inputFmt 。 |
VPI_ERROR_INVALID_ARGUMENT | payload 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | width 、height 、numLevels 或 gridSize 超出有效范围。 |
VPI_ERROR_INVALID_ARGUMENT | backends 指的是无效的后端。 |
VPI_ERROR_INVALID_OPERATION | 后端硬件不可用。 |
VPI_ERROR_INVALID_OPERATION | 后端未在当前上下文中启用。 |
VPI_ERROR_NOT_IMPLEMENTED | 给定后端不支持稠密光流算法。 |
VPI_ERROR_INVALID_CONTEXT | 当前上下文已销毁。 |
VPI_ERROR_OUT_OF_MEMORY | 无法分配所需资源。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiSubmitOpticalFlowDense | ( | VPIStream | stream, |
uint64_t | backend, | ||
VPIPayload | payload, | ||
VPIImage | prevImg, | ||
VPIImage | curImg, | ||
VPIImage | mvImg | ||
) |
#include <vpi/algo/OpticalFlowDense.h>
在两个帧上运行稠密光流,输出运动向量。
[in] | stream | 将在其中排队操作的流。
|
[in] | backend | 将执行该算法的后端。
|
[in] | payload | 由 vpiCreateOpticalFlowDense 创建的负载。
|
[in] | prevImg | 上一帧。
|
[in] | curImg | 当前帧。
|
[out] | mvImg | 运动向量输出。
|
VPI_ERROR_INVALID_ARGUMENT | stream 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | prevImg 、curImg 或 mvImg 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | payload 不是使用 vpiCreateOpticalFlowDense 生成的。 |
VPI_ERROR_INVALID_ARGUMENT | payload 中指定的金字塔层级数不是 1。 |
VPI_ERROR_INVALID_ARGUMENT | prevImg 和 curImg 尺寸与 payload 关联的尺寸不匹配。 |
VPI_ERROR_INVALID_IMAGE_FORMAT | prevImg 和 curImg 格式与 payload 关联的格式不匹配。 |
VPI_ERROR_INVALID_PAYLOAD_TYPE | payload 无效。 |
VPI_ERROR_INVALID_OPERATION | 所需的后端未在 stream 、prevImg 、curImg 或 mvImg 中启用。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiSubmitOpticalFlowDensePyramid | ( | VPIStream | stream, |
uint64_t | backend, | ||
VPIPayload | payload, | ||
VPIPyramid | prevPyr, | ||
VPIPyramid | curPyr, | ||
VPIImage | mvImg | ||
) |
#include <vpi/algo/OpticalFlowDense.h>
在两个帧上运行稠密光流,输出运动向量。
[in] | stream | 将在其中排队操作的流。
|
[in] | backend | 将执行该算法的后端。
|
[in] | payload | 由 vpiCreateOpticalFlowDense 创建的负载。 |
[in] | prevPyr | 上一金字塔帧。
|
[in] | curPyr | 当前金字塔帧。
|
[out] | mvImg | 运动向量输出。
|
VPI_ERROR_INVALID_ARGUMENT | stream 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | prevPyr 、cuurPyr 或 mvImg 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | payload 不是使用 vpiCreateOpticalFlowDense 生成的。 |
VPI_ERROR_INVALID_ARGUMENT | prevPyr 和 cuurPyr 尺寸与 payload 关联的尺寸不匹配。 |
VPI_ERROR_INVALID_ARGUMENT | prevPyr 和 curPyr 层级数超出有效范围。 |
VPI_ERROR_INVALID_IMAGE_FORMAT | prevPyr 和 curPyr 格式与 payload 关联的格式不匹配。 |
VPI_ERROR_INVALID_PAYLOAD_TYPE | payload 无效。 |
VPI_ERROR_INVALID_OPERATION | 所需的后端未在 stream 、prevPyr 、cuurPyr 或 mvImg 中启用。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiOpticalFlowDenseGetSGMParams | ( | VPIPayload | payload, |
VPIOpticalFlowDenseSGMParams * | sgmParams | ||
) |
#include <vpi/algo/OpticalFlowDense.h>
检索在稠密光流负载中设置的半全局匹配参数。
[in] | payload | 由 vpiCreateOpticalFlowDense 创建的负载。
|
[out] | sgmParams | 参数将写入到的结构。
|
VPI_ERROR_INVALID_PAYLOAD_TYPE | payload 无效。 |
VPI_ERROR_INVALID_ARGUMENT | sgmParams 为 NULL。 |
VPI_ERROR_INVALID_OPERATION | payload 不是为 OFA 稠密光流创建的。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiOpticalFlowDenseSetSGMParams | ( | VPIPayload | payload, |
const VPIOpticalFlowDenseSGMParams * | sgmParams | ||
) |
#include <vpi/algo/OpticalFlowDense.h>
设置半全局匹配参数,供具有给定负载的稠密光流操作使用。
这些参数仅对给定负载上未来的稠密光流操作有效。已提交的操作不会受到影响。
[in] | payload | 由 vpiCreateOpticalFlowDense 创建的负载。
|
[in] | sgmParams | 供未来使用给定负载的稠密光流提交使用的 SGM 参数。
|
VPI_ERROR_INVALID_PAYLOAD_TYPE | payload 无效。 |
VPI_ERROR_INVALID_ARGUMENT | sgmParams 为 NULL。 |
VPI_ERROR_INVALID_OPERATION | payload 不是为 OFA 稠密光流创建的。 |
VPI_SUCCESS | 操作成功执行。 |