【问题标题】:How to warp the later frame to previous frame using optical flow image如何使用光流图像将后一帧扭曲到前一帧
【发布时间】:2017-05-18 07:21:24
【问题描述】:

我只有两张图片,一张是当前帧,一张是其他方式计算出来的光流图。

当前帧是:

光流图为:

我的问题是如何使用这两个图像计算前一帧?

我看到了一种解决方案,只是使用双线性插值将当前帧扭曲到带有光流图像的最后一帧。但我不知道该怎么做。

那么,有人可以给我一些建议或想法吗?非常感谢。

【问题讨论】:

标签: image image-processing computer-vision opticalflow


【解决方案1】:

您正在寻找 opencv 函数remap。如果您有当前图像 (currImg) 和光流垫 (flow),那么您可以通过首先反转光流然后应用函数 remap 来预测前一个图像。在python中代码如下:

import cv2
h, w = flow.shape[:2]
flow = -flow
flow[:,:,0] += np.arange(w)
flow[:,:,1] += np.arange(h)[:,np.newaxis]
prevImg = cv2.remap(curImg, flow, None, cv.INTER_LINEAR)

【讨论】:

  • 您好!只是好奇:在这里反转光流有什么意义?如果流程是从上一个图像到当前图像,根据cv2.remap的公式,dst(x,y) = src(map_x(x,y),map_y(x,y))。您的代码基本上是在将网格添加到流程中吗?
  • 光流通常是从前一个图像竞争到当前图像。如果要从当前图像中获取上一个,则必须反转流向
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多