资源: 光流估计(对视频处理+python实现+原理+实验报告)
光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”,根据各个像素点的速度矢量特征,可以对图像进行动态分析,例如目标跟踪。
• 亮度恒定:同一点随苕时间的变化,其亮度不会发生改变。
• 小运动:随巷时间的变化不会引起位置的剧烈变化,只有小运动情况下才能用前后絞间单位位罝变化弓I起的灰度变化去近似灰度对位置的偏导数。
• 空间一致:一个场景上邻近的点投影到图像上也是邻近点,且邻近点速度一致。因为光流法基本方程约束只有一而要求x, y方向的速度,有两个未知变量。所以需要连立n多个方程求解。
1. 导入库
import numpy as np
import cv2
2. 读取视频
cap = cv2.VideoCapture('test.avi')
3. 角点检测所需参数
feature_params = dict( maxCorners = 100,
qualityLevel = 0.3,
minDistance = 7)
4. lucas kanade参数
lk_params = dict( winSize = (15,15),
maxLevel = 2)
5. 随机颜色条
color = np.random.randint(0,255,(100,3))
6. 拿到第一帧图像
7. 创建一个mask
8. 构建循环对视频处理
9. 需要传入前一帧和当前图像以及前一帧检测到的角点
10. 绘制轨迹
11. 更新
相关代码及实验报告:光流估计(对视频处理+python实现+原理+实验报告)