资源: 光流估计(对视频处理+python实现+原理+实验报告)
实现效果:
![请添加图片描述](https://img-blog.csdnimg.cn/6677475e9312411baeff54947915ad6f.jpeg)
相关原理:
光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”,根据各个像素点的速度矢量特征,可以对图像进行动态分析,例如目标跟踪。
• 亮度恒定:同一点随苕时间的变化,其亮度不会发生改变。
• 小运动:随巷时间的变化不会引起位置的剧烈变化,只有小运动情况下才能用前后絞间单位位罝变化弓I起的灰度变化去近似灰度对位置的偏导数。
• 空间一致:一个场景上邻近的点投影到图像上也是邻近点,且邻近点速度一致。因为光流法基本方程约束只有一而要求x, y方向的速度,有两个未知变量。所以需要连立n多个方程求解。
![在这里插入图片描述](https://img-blog.csdnimg.cn/f3fc7e8b110d48dba7a42b3f697bde44.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c3c76462859f45048f7c70fd8f8cbbfc.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/e647e2d39d624d0ab865aafa70278bdb.png)
代码实现步骤:
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实现+原理+实验报告)