huoyan
huoyan

Reputation: 141

How to warp the later frame to previous frame using optical flow image

I just have two images,one is the current frame,the other is the optical flow image which calculated by other manners.

The current frame is: enter image description here

The optical flow image is: enter image description here

My question is how to calculate the previous frame using the two images?

I have saw one solution,just using bilinear interpolation to warp current frame to last frame with optical flow image.But I didn't know how to do it.

So,could someone give me some advice or ideas? Thanks a lot.

Upvotes: 10

Views: 9332

Answers (1)

Tobias Senst
Tobias Senst

Reputation: 2830

You are looking for the opencv function remap. If you have the current image (currImg) and the optical flow mat (flow) than you can predict the previous image by first inverting the optical flow and then apply the function remap. In python the code will be as follows:

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)

Upvotes: 13

Related Questions