VPI - 视觉编程接口

3.2 版本

OpticalFlowPyrLK.h
转到此文件的文档。
1 /*
2  * 版权所有 2020-2021 英伟达公司。保留所有权利。
3  *
4  * 致许可方:
5  *
6  * 此源代码和/或文档(“许可交付物”)是
7  * 受美国和英伟达知识产权保护,并受美国和
8  * 国际版权法保护。
9  *
10  * 此处包含的许可交付物是英伟达的专有和
11  * 机密信息,并根据英伟达与
12  * 许可方之间达成的英伟达软件许可协议条款和条件,或经许可方电子
13  * 接受的条款和条件提供。尽管许可协议中有任何相反的条款或条件,
14  * 许可协议中有任何相反的条款或条件,
15  * 未经英伟达明确书面同意,不得向任何第三方复制或披露
16  * 许可交付物。
17  * 英伟达明确书面同意是被禁止的。
18  *
19  * 尽管许可协议中有任何相反的条款或条件,
20  * 英伟达不对这些许可交付物针对任何特定用途的适用性做出任何陈述。
21  * 这些交付物“按原样”提供,不附带任何明示或暗示的担保。
22  * 英伟达不承担与这些许可交付物相关的所有保证,
23  * 包括对适销性、非侵权和特定用途适用性的所有默示保证。
24  * 包括对适销性、非侵权和特定用途适用性的所有默示保证。
25  * 尽管许可协议中有任何相反的条款或条件,
26  * 在任何情况下,英伟达均不对任何特殊的、间接的、附带的或后果性的损害,
27  * 或因使用、数据或利润损失而导致的任何损害负责,
28  * 或因使用、数据或利润损失而导致的任何损害负责,
29  * 无论是在合同诉讼、过失或其他侵权行为中,
30  * 均不承担因使用或执行这些许可交付物而产生或与之相关的责任。
31  * 均不承担因使用或执行这些许可交付物而产生或与之相关的责任。
32  *
33  *
34  * 美国政府最终用户。这些许可交付物是
35  * “商业项目”,该术语在 48 C.F.R. 2.101 (OCT
36  * 1995) 中定义,包括“商业计算机软件”和“商业
37  * 计算机软件文档”,这些术语在 48
38  * C.F.R. 12.212 (SEPT 1995) 中使用,并且仅作为商业最终项目提供给美国政府。
39  * 与 48 C.F.R. 12.212 和
40  * 48 C.F.R. 227.7202-1 至 227.7202-4 (1995 年 6 月) 一致,所有
41  * 美国政府最终用户仅获得此处规定的许可交付物权利。
42  * 美国政府最终用户仅获得此处规定的许可交付物权利。
43  *
44  * 在个人和商业软件中使用许可交付物时,必须在用户文档和代码内部
45  * 注释中包含上述免责声明和美国政府最终用户声明。
46  * 注释中包含上述免责声明和美国政府最终用户声明。
47  * 用户声明。
48  */
49 
56 #ifndef NV_VPI_ALGORITHMS_OPTICALFLOWPYRLK_H
57 #define NV_VPI_ALGORITHMS_OPTICALFLOWPYRLK_H
58 
68 #include "../Export.h"
69 #include "../ImageFormat.h"
70 #include "../Status.h"
71 #include "../Types.h"
72 
73 #include <stdbool.h>
74 #include <stdint.h>
75 
76 #ifdef __cplusplus
77 extern "C" {
78 #endif
79 
83 typedef enum
84 {
88 
92 typedef struct
93 {
97  uint32_t useInitialFlow;
98 
104  uint32_t termination;
105 
108 
111  float epsilon;
112 
116  int32_t numIterations;
117 
122 
124 
149 #if NV_VPI_VERSION_API_AT_MOST(3, 1)
150 __asm__(".symver vpiInitOpticalFlowPyrLKParams,vpiInitOpticalFlowPyrLKParams@VPI_3.0");
152 #else
154 #endif
155 
191 VPI_PUBLIC VPIStatus vpiCreateOpticalFlowPyrLK(uint64_t backends, int32_t width, int32_t height, VPIImageFormat fmt,
192  int32_t levels, float scale, VPIPayload *payload);
193 
258 VPI_PUBLIC VPIStatus vpiSubmitOpticalFlowPyrLK(VPIStream stream, uint64_t backend, VPIPayload payload,
259  VPIPyramid prevPyr, VPIPyramid curPyr, VPIArray prevPts, VPIArray curPts,
260  VPIArray trackingStatus, const VPIOpticalFlowPyrLKParams *params);
261 
262 #ifdef __cplusplus
263 }
264 #endif
265  // VPI_OpticalFlowPyrLK 结束
267 
268 #endif // NV_VPI_ALGORITHMS_OPTICALFLOWPYRLK_H
struct VPIArrayImpl * VPIArray
数组的句柄。
Definition: Types.h:232
uint64_t VPIImageFormat
预定义的图像格式。
Definition: ImageFormat.h:94
int32_t numIterations
指定最大迭代次数。
float epsilon
指定终止算法的最小误差阈值。
VPIEpsilonType epsilonType
指定跟踪误差类型。
int32_t windowDimension
指定在其上执行算法的窗口大小。
uint32_t useInitialFlow
当此标志不为 0 时,使用存储在当前帧关键点数组中的初始估计值,...
uint32_t termination
指定终止条件。
VPIEpsilonType
定义误差测量类型。
VPIStatus vpiSubmitOpticalFlowPyrLK(VPIStream stream, uint64_t backend, VPIPayload payload, VPIPyramid prevPyr, VPIPyramid curPyr, VPIArray prevPts, VPIArray curPts, VPIArray trackingStatus, const VPIOpticalFlowPyrLKParams *params)
在两个帧上运行金字塔 LK 光流。
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 创建有效载荷。
@ VPI_LK_ERROR_L1
前一个特征和下一个特征之间的 L1 距离。
定义 vpiSubmitOpticalFlowPyrLK 参数的结构体。
struct VPIPayloadImpl * VPIPayload
算法有效载荷的句柄。
Definition: Types.h:268
struct VPIPyramidImpl * VPIPyramid
图像金字塔的句柄。
Definition: Types.h:262
VPIStatus
状态代码。
Definition: Status.h:81
struct VPIStreamImpl * VPIStream
流的句柄。
Definition: Types.h:250