Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 496
huoyan Avatar asked May 18 '17 07:05

huoyan


1 Answers

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)
like image 177
Tobias Senst Avatar answered Nov 10 '22 02:11

Tobias Senst