如何使用光流图像将后一帧扭曲到前一帧

huo*_*yan 9 image image-processing opticalflow computer-vision

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

当前帧为: 在此处输入图片说明

光流图为: 在此处输入图片说明

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

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

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

Tob*_*nst 6

您正在寻找 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)
Run Code Online (Sandbox Code Playgroud)