计算光流利用社区处理子系统模块
这个例子展示了如何计算光流的视频通过社区处理子系统模块。光流速度的分布明显的对象在一个图像。使用光学流识别和跟踪视频中的对象。
检查模型
打开模型。
模型=“OpticalFlowNeighborhoodExample”;open_system(模型);
模型引用一个视频输入,rhinos.avi
从多媒体文件,通过使用块从计算机视觉的工具箱。在每个迭代中,该模型通过当前和前一帧的视频DUT
子系统,进行光流计算。这个计算输出一个光学流矩阵每个像素代表的视运动的视频。计算模型覆盖这些运动向量的输入视频。
打开DUT
子系统。
这个例子使用Lucas-Kanade计算光流的方法。Lucas-Kanade方法需要的值 , , 衍生品的像素亮度沿着水平方向,垂直方向,分别和时间。
的计算第九
社区处理子系统计算
通过使用1-by-5社区,这些块。附近的控制块NeighborhoodConfig
使用其指定社区大小邻域大小参数。
的计算Iy
子系统的计算
同一块和5-by-1社区。该模型计算
是当前视频帧之间的差异和之前的视频帧使用和块。
卧式光学流 和垂直光流 代表这个方程的解。
解这个方程,Lucas-Kanade方法将输入图像划分为较小的部分,每个部分假设一个恒定的速度。然后进行加权,最小二乘匹配光流约束方程的常数模型 在每个部分 。了通过最小化这个方程,拟合的方法达到这个地方 是一个窗口函数,强调约束每个部分的中心:
最小化问题的解决方案是:
计算的例子 , , , , 通过使用产品。这个例子实现了 通过使用与5-by-5社区社区处理子系统模块。
打开路的方法
子系统。
的计算特征值
社区处理子系统的特征值计算
通过求解方程
。
例子实现了其余的Lucas-Kanade方法使用条件
子系统和MATLAB函数块。这些计算的信息,请参阅opticalFlowLK
(计算机视觉工具箱)。
仿真和结果
模拟模型。
evalc(模型);
模型显示输入的视频与向量覆盖,代表光流。
另请参阅
社区处理子系统|opticalFlowLK
(计算机视觉工具箱)