Линейная интерполяция видеокадров в OpenCV Python

Я пытался добиться так называемого "побочного эффекта" из метода LFI для вставки фреймов в OpenCV, Python.

Тем не менее, вывод не дает результатов. Я использовал функцию смешивания OpenCV для вычисления промежуточных кадров.

Вот код:

from __future__ import division

import numpy as np
import cv2


cap = cv2.VideoCapture('test_vid.avi')

starting = True
prev_frame = np.uint8([250])

while(True):

    # Capture frame-by-frame
    ret, frame = cap.read()

    if starting==True:
        prev_frame = frame
        starting = False
    else:
        for i in range(1,10):
            weight = i/10
            #get the blended frames in between
            mid_frame = cv2.addWeighted(prev_frame,weight,frame,1-weight,0)     
            cv2.imshow('frame2',mid_frame)

        #cv2.imshow('frame',frame)     
        prev_frame = frame

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

Результат выглядит так, как будто это тот же кадр, что и текущий кадр (никаких признаков фактического смешивания не происходит)

0 ответов

Другие вопросы по тегам