Matlab OpticalFlow组件可实现复杂矢量场

时间:2018-09-06 19:23:43

标签: matlab computer-vision vision opticalflow

我正在尝试使用不再支持的MATLAB调用

更新旧代码。
   opticalFlowClass = vision.OpticalFlow('OutputValue', ...
     'Horizontal and vertical components in complex form', 'Method', method);
如呼叫所示,

以复杂形式输出M x N矩阵。 当前通话,例如

     opticalFlowClass = opticalFlowHS;
     flow = estimateFlow(opticalFlowClass, video);

输出带有组件的流对象

    flow.Vx
    flow.Vy
    flow.Magnitude
    flow.Orientation      

由于代码中其他地方的依赖性,并且为了避免完全重写,我想使用新调用中的组件以旧调用的复杂形式形成矩阵。但是,我找不到任何文档说明如何创建复杂表格。我的问题是

复杂表格的结构是什么,以及如何根据组件和方向创建的?

任何指向旧文档的链接对此进行解释,将不胜感激。

编辑:我应该补充一点,我推测

    Flow = complex(Vx,Vy),

但我对此不支持

1 个答案:

答案 0 :(得分:0)

从文档中不清楚输出选项的确切含义。如果您有兴趣,可以在以下位置访问旧版文档。

https://www.mathworks.com/help/releases/R2015a/vision/ref/vision.opticalflow-class.html

通过未公开的videooptflowlines函数,似乎real(flow)代表水平速度为正向,imag(flow)代表垂直速度为正向。所以你的猜测是正确的

flowComplex = complex(flow.Vx, flow.Vy);