Я пытаюсь реализовать некоторую коррекцию дрожания / движения в данных (изображения интенсивности в градациях серого, хранящиеся в формате hdf5) с помощью пакета OpenCV. Обычно я читаю данные как список 2D-массивов (используя imshow для выполнения цветовых диаграмм).
Стандартный способ чтения кадров из видеофайла с использованием cap = cv2.VideoCapture('video.mp4')
, похоже, не принимает мой список двумерных массивов 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]]
Есть ли способ сделать это без сохранения файлов в виде изображений, а затем видео, а затем их чтения через cv2?
Я хотел бы использовать функции goodFeaturesToTrack (), calcOpticalFlowPyrLK () и EstimationRigidTransform () из cv2, чтобы убедиться, что я сравниваю одни и те же точки в пространстве для каждого кадра в серии.