Я пытаюсь реализовать некоторую коррекцию дрожания / движения данных (изображения с интенсивностью серого, хранящиеся в формате hdf5) с помощью пакета OpenCV. Обычно я считываю данные в виде списка двумерных массивов (используя imshow для выполнения цветовых графиков).
Стандартный способ чтения в кадрах из видеофайла с использованием cap = cv2.VideoCapture('video.mp4')
, похоже, не принимает мой список 2D numpy массивов, которые выглядят примерно так:
[[243.25 228.5 238.75 ... 277.75 302.5 292.25]
[255. 256.5 234.75 ... 295.25 289.25 272.5 ]
[252.5 238.5 231.5 ... 294.25 279.75 285. ]
...
[253. 248.75 245.25 ... 334.5 282. 335. ]
[268.75 253.25 280.75 ... 329.75 338.5 329.25]
[261. 252.75 254.75 ... 314.25 338.25 315.75]]
Is Есть ли способ сделать это без необходимости сохранять файлы в виде изображений, а затем видео, а затем читать их обратно через cv2?
Я хотел бы использовать goodFeaturesToTrack (), calcOpticalFlowPyrLK () и оценкаRigidTransform () функции из cv2, чтобы убедиться, что я сравниваю одни и те же точки в пространстве для каждого кадра в серии.