1 | initial version |
This code will work merely OpenCV3.x. But I haven't tested on OpenCV4.0.1. Code:
def interpolate_frames(frame, coords, flow, n_frames):
frames = [frame]
for f in range(1, n_frames):
pixel_map = coords + (f/n_frames) * flow
inter_frame = cv2.remap(frame, pixel_map, None, cv2.INTER_LINEAR)
frames.append(inter_frame)
return frames
flow = cv2.calcOpticalFlowFarneback(curr, prev, None, *optflow_params)
inter_frames = interpolate_frames(prev_frame, coords, flow, 4)
2 | No.2 Revision |
This code will work merely OpenCV3.x. But I haven't tested on OpenCV4.0.1.
OpenCV4.0.1. Btw, it is essential to used cv2.remap.
Code:
def interpolate_frames(frame, coords, flow, n_frames):
frames = [frame]
for f in range(1, n_frames):
pixel_map = coords + (f/n_frames) * flow
inter_frame = cv2.remap(frame, pixel_map, None, cv2.INTER_LINEAR)
frames.append(inter_frame)
return frames
flow = cv2.calcOpticalFlowFarneback(curr, prev, None, *optflow_params)
inter_frames = interpolate_frames(prev_frame, coords, flow, 4)