Как отменить дрожание камеры из видео с помощью MATLAB? - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть видео с шумом из-за дрожания камеры.Как отменить эффект из-за дрожания камеры с помощью MATLAB?

1 Ответ

0 голосов
/ 03 февраля 2012

Поскольку этот вопрос некоторое время оставался без ответа, я попытаюсь ответить на него.Я не могу предоставить конкретное решение для MATLAB, но могу предоставить общее решение.

Предполагая, что вы имеете в виду незначительное межкадровое изменение положения камеры, когда вы пишете "дрожание", это можно сделать с помощью разреженногометоды оптического потока.

  1. Сначала вычислите пиксельное изменение между кадрами 1 и 2. Я использовал метод Лукаса-Канаде - здесь - это ссылка на какой-то источник MATLABкод.Обратите внимание, что этот метод довольно быстрый, поскольку он применяется к наборам объектов (т. Е. К углам и т. Д.).

  2. На данный момент вы теперь знаете сдвиг (измеренный в пикселях) между кадром 1и 2. Чтобы зарегистрировать два изображения, просто сдвиньте кадр 2 «назад» на указанные значения сдвига.Например, если разница между кадром 1 и кадром 2 (-3,1), то есть на три пикселя влево и на один пиксель вниз, вы можете просто перевести кадр 2 на три пикселя вправо и на один пиксель вверх.

  3. Повторите шаги 1 и 2 для всех последующих соседних пар изображений: 2,3, затем 3,4, затем 4,5 и т. Д.

Примечание.следите за знаками сдвига пикселей на шаге 2. Перевод вверх / вниз и влево / вправо зависит от порядка обработки кадров изображения (т. е. кадр 2 - кадр 1 или кадр 1 - кадр 2) и ориентации изображений (пиксельные координаты увеличиваются при движении вниз или вверх?)

...