主要内容

计算光流利用社区处理子系统模块

这个例子展示了如何计算光流的视频通过社区处理子系统模块。光流速度的分布明显的对象在一个图像。使用光学流识别和跟踪视频中的对象。

检查模型

打开模型。

模型=“OpticalFlowNeighborhoodExample”;open_system(模型);

模型引用一个视频输入,rhinos.avi从多媒体文件,通过使用块从计算机视觉的工具箱。在每个迭代中,该模型通过当前和前一帧的视频DUT子系统,进行光流计算。这个计算输出一个光学流矩阵每个像素代表的视运动的视频。计算模型覆盖这些运动向量的输入视频。

打开DUT子系统。

这个例子使用Lucas-Kanade计算光流的方法。Lucas-Kanade方法需要的值 x , y , t 衍生品的像素亮度沿着水平方向,垂直方向,分别和时间。

计算第九社区处理子系统计算 x 通过使用1-by-5社区,这些块。附近的控制块NeighborhoodConfig使用其指定社区大小邻域大小参数。

计算Iy子系统的计算 y 同一块和5-by-1社区。该模型计算 t 是当前视频帧之间的差异和之前的视频帧使用和块。

卧式光学流 u 和垂直光流 v 代表这个方程的解。

x u + y v + t = 0

解这个方程,Lucas-Kanade方法将输入图像划分为较小的部分,每个部分假设一个恒定的速度。然后进行加权,最小二乘匹配光流约束方程的常数模型 ( u v ] T 在每个部分 Ω 。了通过最小化这个方程,拟合的方法达到这个地方 W 是一个窗口函数,强调约束每个部分的中心:

x Ω W 2 ( x u + y v + t ] 2

最小化问题的解决方案是:

( W 2 x 2 W 2 x y W 2 x y W 2 y 2 ] ( u v ] = - - - - - - ( W 2 x y W 2 y t ]

计算的例子 x 2 , x y , y 2 , x y , y t 通过使用产品。这个例子实现了 W 通过使用与5-by-5社区社区处理子系统模块。

打开路的方法子系统。

计算特征值社区处理子系统的特征值计算 一个 = ( 一个 b c d ] = ( W 2 x 2 W 2 x y W 2 x y W 2 y 2 ] 通过求解方程 λ = 一个 + c 2 ± 4 b 2 + ( 一个 + c ) 2 2 ; = 1 , 2

例子实现了其余的Lucas-Kanade方法使用条件子系统和MATLAB函数块。这些计算的信息,请参阅opticalFlowLK(计算机视觉工具箱)

仿真和结果

模拟模型。

evalc(模型);

模型显示输入的视频与向量覆盖,代表光流。

另请参阅

|(计算机视觉工具箱)

相关的话题