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:
The optical flow image is:
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.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With