hbVPOpticalFlowPyrLK

typedef struct hbVPKeyPoint { float x; float y; } hbVPKeyPoint;
  • 成员

    成员名称描述
    x特征点x坐标。
    y特征点y坐标。
typedef struct hbVPLKOFParam { uint32_t pyrLevels; uint32_t winSize; uint32_t criteriaEpsilon; uint32_t maxIteration; float minEigThreshold; uint8_t confEnable; } hbVPLKOFParam;

稀疏光流任务参数结构体。

  • 成员

    成员名称描述
    pyrLevels用于计算的金字塔层数。
    winSize光流窗口大小,取值范围3~23,奇数,需大于角点检测窗口大小。
    criteriaEpsilon优化终止阈值,取值范围0~255。
    maxIteration最大迭代次数,取值范围1~10。
    minEigThreshold最小特征值阈值
    confEnable光流置信度使能开关 非0: 打开, 0:关闭, J6不支持, 使用默认值
注解

J6没有LKOF硬件,采用DSP后端实现。

int32_t hbVPOpticalFlowPyrLK(hbUCPTaskHandle_t *taskHandle, hbVPArray *currPoints, hbVPArray *currPointsStatus, hbVPArray *currPointsConf, hbVPArray const *prevPoints, hbVPImage const *currPym, hbVPImage const *prevPym, hbVPLKOFParam const *lkofParam);

调用OpticalFlowPyrLK API。

  • 参数
    • [out] taskHandle 任务句柄,负责算子与UCP架构的交互。
    • [out] currPoints 输出特征点,存储元素类型为hbVPKeyPoint,内存大小为数据size * sizeof(hbVPKeyPoint),size与prevPoints的size相同。
    • [out] currPointsStatus 追踪点状态,0表示不收敛, 非0表示收敛,存储元素类型为uint8_t,内存大小为size * sizeof(uint8_t),size与currPoints点数相同。
    • [out] currPointsConf 光流置信度,J6 DSP后端不支持,可为nullptr。
    • [in] prevPoints 前一帧的特征点,数据类型与currPoints相同。
    • [in] currPym 输入当前帧图像的金字塔图层,需要和前一帧格式一致。
    • [in] prevPym 输入前一帧图像的金字塔图层。
    • [in] lkofParam 稀疏光流任务参数。
  • 返回值
    • 返回 0 则表示API成功执行,否则执行失败。