主要内容

opticalFlowHS

对象使用Horn-Schunck估算光流方法

描述

创建一个光学流对象的方向和速度估算使用Horn-Schunck移动物体的方法。使用目标函数estimateFlow估计光流矢量。使用重置目标函数,你可以重置光学流对象的内部状态。

创建

描述

opticFlow= opticalFlowHS返回一个光学流对象,您可以使用估计的方向和速度移动对象在一个视频。使用Horn-Schunck光流估计的方法。

例子

opticFlow= opticalFlowHS (名称,值)返回一个光学流对象与属性指定为一个或多个名称,值对参数。任何未指定的属性有默认值。在报价附上每个属性的名字。

例如,opticalFlowHS(“平滑”,1.5)

属性

全部展开

预期平滑光流,指定为一个积极的标量。增加这个值增加连续帧之间的运动。一个典型的价值“平滑”大约是1

最大迭代次数,指定为一个正整数值标量。增加这个值来估计物体的光流速度较低。

迭代计算时停止迭代次数等于的价值“MaxIteration”或当该算法达到设定的值“VelocityDifference”。只有使用停止计算“MaxIteration”,设置的价值“VelocityDifference”0

最小绝对速度差异,指定为一个积极的标量。这个值取决于输入数据的类型。降低这个值来估计物体的光流速度较低。

迭代计算算法达到设置值时停止“VelocityDifference”或迭代次数=“MaxIteration”。只使用“VelocityDifference”停止计算,集“MaxIteration”

对象的功能

estimateFlow 光流估计
重置 复位光流估计对象的内部状态

例子

全部折叠

创建一个VideoReader对象的输入视频文件,visiontraffic.avi。指定帧的时间戳来解读为11。

vidReader = VideoReader (“visiontraffic.avi”,“CurrentTime”11);

指定光流估计方法opticalFlowHS。输出是一个对象指定光流估计方法和它的属性。

opticFlow = opticalFlowHS
opticFlow = opticalFlowHS特性:平滑度:1 MaxIteration: 10 VelocityDifference: 0

创建一个定制的可视化的光流矢量图窗口。

h =图;movegui (h);hViewPanel = uipanel (h,“位置”(0 0 1 1),“标题”,“光流矢量的阴谋”);hPlot =轴(hViewPanel);

读取的图像帧VideoReader对象,并转换为灰度图像。估计连续图像帧的光流。显示当前图像帧和情节颤抖的光流矢量图。

hasFrame (vidReader) frameRGB = readFrame (vidReader);frameGray = im2gray (frameRGB);流= estimateFlow (opticFlow frameGray);imshow (frameRGB)情节(流,“DecimationFactor”,5 [5],“ScaleFactor”现年60岁的“父”,hPlot);持有暂停(10 ^ 3)结束

图包含一个坐标轴对象和一个uipanel类型的对象。坐标轴对象包含2图像类型的对象,颤。

图包含一个坐标轴对象和一个uipanel类型的对象。坐标轴对象包含2图像类型的对象,颤。

算法

全部展开

计算两幅图像之间的光流,你必须解决这个光流约束方程:

x u + y v + t = 0

  • x , y , t 的时空图像亮度的衍生品。

  • u是水平的光流。

  • v是垂直的光流。

引用

[1]巴伦,j·L。,D. J. Fleet, S. S. Beauchemin, and T. A. Burkitt. “ Performance of optical flow techniques.” In《IEEE计算机视觉与模式识别会议(CVPR),236 - 242。香槟,IL: CVPR, 1992年。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2015a