opticalFlowFarneback
用于基于 Farneback 方法估计光流的对象
说明
使用 Farneback 方法创建一个光流对象,用于估计移动物体的方向和速度。使用对象函数 estimateFlow 来估计光流向量。使用 reset 对象函数,可以重置光流对象的内部状态。
创建对象
描述
返回一个光流对象,您可以利用它来估计视频中移动物体的方向和速度。光流是采用法恩巴克 (Farneback) 方法估算的。opticFlow = opticalFlowFarneback
返回一个光流对象,其属性由一个或多个 opticFlow = opticalFlowFarneback(Name,Value)Name,Value 参量指定。任何未指定的属性均采用默认值。用引号将每个属性名称引起来。
例如,opticalFlowFarneback('NumPyramidLevels',3)
属性
对象函数
estimateFlow | 估计光流 |
reset | Reset the internal state of the optical flow estimation object |
示例
算法
Farneback 算法会生成一个图像金字塔,其中每一层的分辨率都比上一层低。当您选择大于 1 的金字塔级别时,算法可以从最低级别开始,在多个分辨率级别上追踪这些点。增加金字塔层数,可使算法处理帧与帧之间更大的点位移。然而,计算量也会随之增加。该图展示了一个由三层组成的图像金字塔。

跟踪从最低分辨率级别开始,并持续进行直至收敛。在某一层检测到的点位置将作为关键点传递到下一层。通过这种方式,该算法在每个级别上都会进一步优化跟踪效果。金字塔分解使该算法能够处理较大的像素位移,即位移距离可能大于邻域大小。
参考
[1] Farneback, G. “Two-Frame Motion Estimation Based on Polynomial Expansion.” In Proceedings of the 13th Scandinavian Conference on Image Analysis, 363 - 370. Halmstad, Sweden: SCIA, 2003.
扩展功能
版本历史记录
在 R2015b 中推出

