用于跟踪从一帧到下一帧的点的算法。 更多...
数据结构 | |
结构体 | VPIOpticalFlowPyrLKParams |
定义 vpiSubmitOpticalFlowPyrLK 参数的结构体。 更多... | |
枚举 | |
枚举 | VPIEpsilonType |
定义误差测量类型。 更多... | |
函数 | |
VPIStatus | vpiInitOpticalFlowPyrLKParams (uint64_t backends, VPIOpticalFlowPyrLKParams *params) |
使用默认值初始化 VPIOpticalFlowPyrLKParams。 更多... | |
VPIStatus | vpiCreateOpticalFlowPyrLK (uint64_t backends, int32_t width, int32_t height, VPIImageFormat fmt, int32_t levels, float scale, VPIPayload *payload) |
为 vpiSubmitOpticalFlowPyrLK 创建负载。 更多... | |
VPIStatus | vpiSubmitOpticalFlowPyrLK (VPIStream stream, uint64_t backend, VPIPayload payload, VPIPyramid prevPyr, VPIPyramid curPyr, VPIArray prevPts, VPIArray curPts, VPIArray trackingStatus, const VPIOpticalFlowPyrLKParams *params) |
在两个帧上运行金字塔 LK 光流。 更多... | |
用于跟踪从一帧到下一帧的点的算法。
有关更多详细信息和用法示例,请参阅 金字塔 LK 光流。
struct VPIOpticalFlowPyrLKParams |
定义 vpiSubmitOpticalFlowPyrLK 参数的结构体。
定义于文件 OpticalFlowPyrLK.h 的第 92 行。
数据字段 | ||
---|---|---|
uint32_t | useInitialFlow | 当此标志不为 0 时,使用存储在当前帧关键点数组中的初始估计值;否则,将上一帧关键点复制到当前帧关键点数组,并将其视为初始估计值。 |
uint32_t | termination | 指定终止条件。
|
VPIEpsilonType | epsilonType | 指定跟踪误差类型。 |
float | epsilon | 指定用于终止算法的最小误差阈值。 仅当终止标志包含 VPI_TERMINATION_CRITERIA_ITERATIONS 时适用。 |
int32_t | numIterations | 指定最大迭代次数。 仅当终止标志包含 VPI_TERMINATION_CRITERIA_ITERATIONS 时适用。
|
int32_t | windowDimension | 指定执行算法的窗口大小。
|
enum VPIEpsilonType |
#include <vpi/algo/OpticalFlowPyrLK.h>
定义误差测量类型。
枚举器 | |
---|---|
VPI_LK_ERROR_L1 | 先前特征和下一个特征之间的 L1 距离。 |
定义于文件 OpticalFlowPyrLK.h 的第 83 行。
VPIStatus vpiInitOpticalFlowPyrLKParams | ( | uint64_t | backends, |
VPIOpticalFlowPyrLKParams * | params | ||
) |
#include <vpi/algo/OpticalFlowPyrLK.h>
使用默认值初始化 VPIOpticalFlowPyrLKParams。
返回与所有给定后端兼容的默认金字塔 LK 光流参数。
默认值
[输入] | backends | 指定获取默认值的后端。
|
[输入] | params | 要填充默认值的结构体。 |
VPI_ERROR_INVALID_ARGUMENT | params 为 NULL。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiCreateOpticalFlowPyrLK | ( | uint64_t | backends, |
int32_t | width, | ||
int32_t | height, | ||
VPIImageFormat | fmt, | ||
int32_t | levels, | ||
float | scale, | ||
VPIPayload * | payload | ||
) |
#include <vpi/algo/OpticalFlowPyrLK.h>
为 vpiSubmitOpticalFlowPyrLK 创建负载。
[输入] | backends | 有资格执行该算法的 VPI 后端。
|
[输入] | fmt | 指定金字塔的格式。
|
[输入] | width,height | 指定最精细分辨率下金字塔的尺寸。
|
[输入] | levels | 要使用的金字塔层数。 |
[输入] | scale | 要使用的金字塔比例。 |
[输出] | payload | 指向接收创建的句柄的负载变量的指针。 |
VPI_IMAGE_FORMAT_INVALID | 不支持 fmt 。 |
VPI_ERROR_INVALID_ARGUMENT | payload 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | width 或 height 超出有效范围。 |
VPI_ERROR_INVALID_ARGUMENT | 不支持 fmt 。 |
VPI_ERROR_INVALID_ARGUMENT | backends 指的是无效的后端。 |
VPI_ERROR_NOT_IMPLEMENTED | 给定后端不支持金字塔 LK 光流算法。 |
VPI_ERROR_INVALID_CONTEXT | 当前上下文已销毁。 |
VPI_ERROR_OUT_OF_MEMORY | 无法分配所需资源。 |
VPI_ERROR_INVALID_OPERATION | 后端在当前上下文中未启用。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiSubmitOpticalFlowPyrLK | ( | VPIStream | stream, |
uint64_t | backend, | ||
VPIPayload | payload, | ||
VPIPyramid | prevPyr, | ||
VPIPyramid | curPyr, | ||
VPIArray | prevPts, | ||
VPIArray | curPts, | ||
VPIArray | trackingStatus, | ||
const VPIOpticalFlowPyrLKParams * | params | ||
) |
#include <vpi/algo/OpticalFlowPyrLK.h>
在两个帧上运行金字塔 LK 光流。
输出估计的特征点和跟踪状态。
[输入] | stream | 操作将被排队的流。
|
[输入] | backend | 将执行该算法的后端。
|
[输入] | payload | 使用 vpiCreateOpticalFlowPyrLK 创建的负载。 |
[输入] | prevPyr | 上一帧,表示为高斯金字塔。
|
[输入] | curPyr | 当前帧,表示为高斯金字塔。
|
[输入] | prevPts | prevPyr 高分辨率金字塔中关键点的数组。
|
[输入,输出] | curPts | curPyr 第一层中关键点的数组。如果 params 中的 useInitialFlow 不为 0,则它用作 curPyr 中的起始搜索点。
|
[输入,输出] | trackingStatus | prevPts 中每个输入的跟踪状态数组。如果元素为 0,则正在跟踪相应的关键点,否则,跟踪丢失。
|
[输入] | params | LK 跟踪器的参数。如果为 NULL,则使用 vpiInitOpticalFlowPyrLKParams 返回的默认参数。 |
VPI_ERROR_INVALID_ARGUMENT | stream 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | prevPyr 、curPyr 、prevPts 、curPts 或 trackingStatus 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | payload 不是使用 vpiCreateKLTFeatureTracker 生成的。 |
VPI_ERROR_INVALID_ARGUMENT | prevPyr 和 curPyr 应具有相同的层数、大小、比例和格式。 |
VPI_ERROR_INVALID_ARGUMENT | prevPyr 和 curPyr 格式应与 payload 创建中指定的格式匹配。 |
VPI_ERROR_INVALID_ARGUMENT | params 中提供了无效的终止条件。 |
VPI_ERROR_INVALID_ARGUMENT | params 中的迭代次数超出有效范围。 |
VPI_ERROR_INVALID_ARGUMENT | params 中的跟踪窗口尺寸无效。 |
VPI_ERROR_INVALID_ARGUMENT | prevPts 或 curPts 具有不支持的数组类型。 |
VPI_ERROR_INVALID_ARGUMENT | prevPts 或 curPts 的大小超出有效范围。 |
VPI_ERROR_INVALID_ARGUMENT | prevPts 或 trackingStatus 的容量超出有效范围。 |
VPI_ERROR_INVALID_ARGUMENT | trackingStatus 具有不支持的数组类型。 |
VPI_ERROR_INVALID_PAYLOAD_TYPE | payload 无效。 |
VPI_ERROR_INVALID_OPERATION | 所需的后端在 stream 、prevPyr 、curPyr 、prevPts 、curPts 或 trackingStatus 中未启用。 |
VPI_SUCCESS | 操作成功执行。 |