主要内容

estimateFlow

光流估计

描述

例子

= estimateFlow (opticFlow,)两个连续的视频帧之间的光流估计。

例子

全部折叠

创建一个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图像类型的对象,颤。

输入参数

全部折叠

对象为光流估计,指定为以下之一:

输入opticFlow定义了光流估计方法及其属性用于估计光流速度矩阵。

当前视频帧,指定为一个二维灰度图像的大小——- - - - - -n。从当前视频帧生成输入图像阅读使用VideoReader对象。RGB格式的视频帧必须转换为二维灰度图像光流估计。

输出参数

全部折叠

对象存储光流速度矩阵,作为一个返回opticalFlow对象。

算法

函数输入视频的光流估计使用指定的输入对象的方法opticFlow。光流估计是两个连续的视频帧之间的运动。在视频帧T在给定的时刻t当前的被称为当前帧和视频帧t - 1被称为前一帧。前一帧的初始值t当前的= 0是设置为一个统一的图像灰度值0。

请注意

如果您指定opticFlow作为opticalFlowLKDoG对象,然后估计延迟的数量相对于视频帧的数量。延迟的时间取决于的价值NumFrames中定义的opticalFlowLKDoG对象。光流估计为一个视频帧t当前的对应的视频帧在时间 t f l o w = ( t c u r r e n t ( N u F r 一个 e 年代 1 ) / 2 ) t当前的是当前视频帧的时间。

扩展功能

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

另请参阅

介绍了R2015a