Python, VidStab, проблема извлечения данных
Заранее извиняюсь если где то допускаю глупые ошибки, я только только начал учить Python.
Так вот, передо мной стоит задача создать программу для оценки работы системы стабилизации. Программа должна определять отклонение ключевых точек одного фрейма от следующего. Для решения этой задачи я выбрал библиотеку VidStab, на основе OpenCV. Она определяет нужные мне значения сдвига и "выравнивает" его. Моя идея в том, что я только возьму значения на которые фрейм смещается, а двигать не буду. Я долго изучал библиотеку, пробовал разные функции и понял, что нужные мне расчеты происходят в функциии _init_trajectory() с помощью _gen_next_raw_transform() и _gen_transforms().
Этот код работает для видеофайла(!). Полагаю, если использовать не cv2.VideoCapture('test3.mov'), а cv2.VideoCapture(0), он запустится для потокового видео с камеры. Но прежде чем попробовать я не могу разобраться с функцией reset_queue(). А именно как задается значение max_len (количество кадров видеофрагмента).
И в целом я думаю, что очень усложняю. Возможно, есть решение проще ?
from vidstab import VidStab
import cv2
stabilizer = VidStab()
stabilizer.frame_queue.set_frame_source(cv2.VideoCapture('test3.mov'))
stabilizer.frame_queue.reset_queue(max_len=31, max_frames=float('inf'))
s_trajectory = stabilizer._init_trajectory(smoothing_window = 30, max_frames = float('inf'))
stabilizer._gen_transforms()
print(stabilizer.transforms[:, 0])