gpt4 book ai didi

python - 从前一帧和光流创建帧

转载 作者:行者123 更新时间:2023-12-02 16:24:38 25 4
gpt4 key购买 nike

我有一个视频,我需要使用Optical Flow模拟帧;即具有一帧并且代表下一帧的像素平移的光流模拟了此下一结果帧。

我正在使用Python和OpenCV,如下所示:

  • 生成两个连续的灰度帧之间的流
  • gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    flow = cv2.calcOpticalFlowFarneback(prev_gray, gray, None, pyr_scale = 0.5, levels = 5, winsize = 11, iterations = 5, poly_n = 5, poly_sigma = 1.1, flags = 0)

    这是第一帧和第二帧之间的流:

    First frame optical flow

    这是以下(目标框架):

    Original second frame
  • 现在,我想使用第一帧和光流来生成第二帧估计。基于this question
  • height = flow.shape[0]
    width = flow.shape[1]
    R2 = np.dstack(np.meshgrid(np.arange(width), np.arange(height)))
    pixel_map = R2 + flow
    prev = original_frames[0].astype("float32")
    pixel_map = pixel_map.astype("float32")
    new_frame = cv2.remap(prev, pixel_map, None, cv2.INTER_LINEAR)

    生成的图像为:

    Resulting frame

    最佳答案

    通过稍微更新代码即可解决此问题,如下所示:

    h = flow.shape[0]
    w = flow.shape[1]
    flow[:,:,0] += np.arange(w)
    flow[:,:,1] += np.arange(h)[:,np.newaxis]

    new_frame = cv2.remap(original_frame, flow, None, cv2.INTER_LINEAR)

    关于python - 从前一帧和光流创建帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62244550/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com