|
1 | 1 | # 视频光流检测
|
2 | 2 | ✏️ ⛳️👍
|
3 | 3 |
|
| 4 | +**More Detail, please check the blog of zhihu as below** |
| 5 | + |
| 6 | +✈️ ✈️ ✈️ [OpenCV视频分析-光流分析](https://zhuanlan.zhihu.com/p/69999853) |
| 7 | + |
4 | 8 | ## 概述
|
5 | 9 |
|
6 | 10 | ✔️ 光流是由对象或相机的移动引起的两个连续帧之间的图像对象的明显运动的模式.它是2D矢量场,其中每个矢量是位移矢量,表示从第一帧到第二帧的点的移动。
|
|
20 | 24 | - 连续的两帧图像之间,**目标像素灰度值不变**。
|
21 | 25 | - 相邻的像素之间有**相似的运动**。
|
22 | 26 |
|
23 |
| -**数学原理** |
24 |
| - |
25 |
| -✔️ 第一帧的像素$I(x,y,t)$,表示在 t 时刻的像素值,那么经过$d_t$时间后,像素在下一帧移动的距离为$(d_x,d_y)$。基于像素相同,亮度不变,可得: |
26 |
| -```math |
27 |
| -I(x, y, t)=I\left(x+d_{x}, y+d_{y}, t+d_{t}\right) |
28 |
| -``` |
29 |
| -假设移动很小,使用泰勒公式得: |
30 |
| -```math |
31 |
| -I(x+\Delta x, y+\Delta y, t+\Delta t)=I(x, y, t)+\frac{\partial I}{\partial x} \Delta x+\frac{\partial I}{\partial y} \Delta y+\frac{\partial I}{\partial t} \Delta t + \varepsilon |
32 |
| -``` |
33 |
| - |
34 |
| -其中$\varepsilon$为无穷小,由第一个假设得: |
35 |
| -```math |
36 |
| -\frac{\partial I}{\partial x} \Delta x+\frac{\partial I}{\partial y} \Delta y+\frac{\partial I}{\partial t} \Delta t=0 |
37 | 27 |
|
38 |
| -<==> |
39 |
| -
|
40 |
| -\frac{\partial I}{\partial x} \frac{\Delta x}{\Delta t}+\frac{\partial I}{\partial y} \frac{\Delta y}{\Delta t}+\frac{\partial I}{\partial t} \frac{\Delta t}{\Delta t}=0 |
41 |
| -``` |
42 |
| -设 $\frac{\partial I}{\partial x}=f_{x} , \frac{\partial I}{\partial y}=f_{y} , \frac{\partial I}{\partial t}=f_{t}$,$\frac{\Delta x}{\Delta t}=u ; \frac{\Delta y}{\Delta t}=v$,则有得到光流方程为: |
43 |
| -```math |
44 |
| -f_{x} u+f_{y} v+f_{t}=0 |
45 |
| -``` |
46 |
| -其中,$f_x$和$f_y$分别是图像梯度,$f_t$是图像沿着时间的梯度。 |
47 | 28 |
|
48 | 29 | 
|
49 | 30 |
|
50 |
| -✔️ 为了求解未知的$u, v$,采用Lucas-Kanada 方法解决,这个算法最早是有Bruce D. Lucas and Takeo Kanade两位作者提出来的,所以又被称为KLT。 |
| 31 | +✔️ 为了求解未知的u, v,采用Lucas-Kanada 方法解决,这个算法最早是有Bruce D. Lucas and Takeo Kanade两位作者提出来的,所以又被称为KLT。 |
51 | 32 |
|
52 | 33 | KLT算法工作有三个假设前提条件:
|
53 | 34 | - 亮度恒定
|
@@ -102,7 +83,6 @@ nextPts,status,err = cv2.calcOpticalFlowPyrLK(prevImg, #上一帧图片
|
102 | 83 | ## 示例代码
|
103 | 84 |
|
104 | 85 | **1. 删除静止点的光流分析:**
|
105 |
| - |
106 | 86 | [Python code](../code_085/opencv_085_flow.py)
|
107 | 87 |
|
108 | 88 | <img src=http://libai.91iot.net/lufax-read-palm/9jDmeoBxbh8g8lFq6HUCUvVgWtX5w3g1 height=400>
|
|
0 commit comments