光流估计
光流是一种运动模式,这种运动模式指的是一个物体、表面、边缘在一个视角下由一个观察者(比如眼睛、摄像头等)和背景之间形成的明显移动
Lucas–Kanade光流算法是一种两帧差分的光流估计算法
算法实现:Lucas-Kanade 算法
eg: p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params
调用OpenCV中的函数cv2.calcOpticalFlowPyrLK():
参数:
-
prevImage 前一帧图像
-
nextImage 当前帧图像
-
prevPts 待跟踪的特征点向量
-
winSize 搜索窗口的大小
-
maxLevel 最大的金字塔层数
返回:
-
nextPts 输出跟踪特征点向量
-
status 特征点是否找到,找到的状态为1,未找到的状态为0
代码
import cv2
import numpy as np
cap=cv2.VideoCapture(‘test.avi’)#转换帧
#角点检测所需参数
feature_params=dict(
maxCorners=100, #最大角点数
qualityLevel = 0.3,#角点最低