【问题标题】:Optical Flow in MatlabMatlab中的光流
【发布时间】:2016-02-11 22:02:35
【问题描述】:

如何在 Matlab 中计算和显示两个图像的光流? 它们是为此的内置函数吗?如果是,您如何实现它?

【问题讨论】:

  • 你试过了吗:bit.ly/1o89ObT
  • 是的,我用谷歌搜索过,但是,我找不到任何可以做这种事情的函数。我是使用 Matlab 的新手,所以如果熟悉使用 Matlab 的人可以帮助我,我将不胜感激。
  • @enishiyama 实际阅读谷歌搜索结果会有所帮助。字面意思是第一个结果mathworks.com/help/vision/ref/vision.opticalflow-class.html
  • 我查看了那个链接。引用我正在尝试做的部分是:“opticalFlow = vision.OpticalFlow(Name,Value) 返回一个光流系统对象 H,每个指定的属性都设置为指定的值。您可以指定其他名称-值以任何顺序将参数配对为 (Name1, Value1,...,NameN,ValueN)。"你知道名字必须是什么吗?我尝试使用存储图像的变量的名称。另外你知道 value 参数应该是什么吗?
  • 再往下 在您发布@Suever 的那个链接中,它谈到使用 I1 作为输入图像和 I2 作为参考图像,我今天早些时候尝试从这个链接获得帮助 (mathworks.com/matlabcentral/answers/…) .之后,我尝试使用绘图功能绘制结果,但我不断收到一个错误,说它无法做到这一点。

标签: matlab opticalflow


【解决方案1】:

如果您只是对如何将光流可视化为颜色和/或箭头感兴趣,这里有一个简单的脚本向您展示如何在 Matlab 中完成:

% Generate an example flow field
[u,v] = meshgrid(linspace(-1,1)/sqrt(2));
mag = sqrt(u.^2 + v.^2);
an = (atan2(v,u)+pi)/(2*pi);

%display as arrows
subplot(1,2,2);
quiver(u(1:5:end,1:5:end),v(1:5:end,1:5:end));
axis image

%display as color
subplot(1,2,1);
imagesc(hsv2rgb(an,mag,mag));
axis image

我的toolbox on optical flow in Matlab(我现在正在宣传)至少有 3 种不同的方式来可视化光流,并结合使用箭头和颜色编码。要将它与 avi 电影文件一起使用,请执行以下操作:

in.movieType = 'example.avi'; % assumes a file 'example.avi' in current folder. 
% in.movieType = 'synthetic';  % generate synthetic video. 
% in.movieType = 'camera';     % assumes a camera available in the system. 

in.method =  @Flow1;       %Locally regularized and vectorized method
% in.method =  @FlowLK;      %Lucas and Kanade 
% in.method =  @FlowHS;      %Horn and Schunk, variational (global regularization)

in.bRecordFlow = 1; %record the optical flow, not only display it

% resolution of flow field [Height Width]:
in.flowRes = [24 24];     %flow resolution <= video resolution

% DO THE CALL TO THE TOOLBOX(initiate the session):
pathToSave = vidProcessing(in);

% view interactively the saved session:
FancyFlowPlayer(pathToSave);

【讨论】:

    【解决方案2】:

    如果您可以访问 Matlab 计算机视觉工具箱,则可以使用 Lucas-Kanade Optical FLow、Horn-Schunck 和 Farnebäck 的内置函数。 它们都需要灰度图像序列。它们返回一个 Flow 对象,其中包含 x、y 方向的流以及大小和角度。 对于显示,您可以使用 plot 或 quiver。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 2016-11-13
      相关资源
      最近更新 更多