首页 > 解决方案 > Matlab 位移矢量场

问题描述

给定两个不同的图像,我如何计算和绘制这两个图像之间位移的矢量场?

我知道 matlab 有一个名为光流的工具,它可以让我做一些与我所要求的类似的事情,但它看起来对我不起作用。

除了光流还有什么可以帮助我的吗?

也许我做错了什么,所以我要发布一个我正在做的例子:

fixed = rgb2gray(imread('Fixed_2.jpg'));
moving = rgb2gray(imread('Moved_2.jpg'));
fixed= fixed(:, 100:400);
moving= moving(:, 100:400);
[optimizer, metric] = imregconfig('monomodal');
movingRegistered = imregister(moving, fixed, 'rigid', optimizer, metric);
figure
imshow(movingRegistered);
    opticFlow = opticalFlowHS;
    flow = estimateFlow(opticFlow,fixed);
    flow = estimateFlow(opticFlow,movingRegistered);
  hold on
  plot(flow,'DecimationFactor',[5 5],'ScaleFactor',25)
  hold off

这是我的输出

向量场

提前谢谢了。

标签: imagematlabvectoropticalflowimage-registration

解决方案


推荐阅读