Reputation: 141
I just have two images,one is the current frame,the other is the optical flow image which calculated by other manners.
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
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