Отлично работает, когда камера только переводит, но не работает, когда камера вращается.Как учесть направление движения камеры?
- Прямой подход (вероятно, невозможен)
Что-то должно отвечать за вращение камеры.Это что-то может знать, насколько вращается камера, и может сказать вам.Я полагаю, что в вашем случае эта информация может быть недоступна.
Регистрация изображений на основе возможностей
Одной функции недостаточно для обнаружения всех аффинных преобразований (перемещение, вращение, масштабирование и т. Д.).Вам нужно будет принять во внимание как минимум две функции (для перевода и поворота) или, что лучше, три функции (для полных аффинных преобразований).
В случае двух функций и только перевода и поворота центр двухОсобенности - это перевод, а ориентация соединения двух функций - это поворот.
Частотная область, регистрация изображений на основе интенсивности
Кросс-корреляция (через БПФ) позволяет быстро обнаруживать переводы, однако вы можете использовать эту технику и для обнаружения поворота и масштабирования (см. Основанная на БПФ методика трансляции, поворота и масштабно-инвариантной регистрации изображений или Надежная регистрация изображений с использованием логополярного преобразования )
Улучшенная точность
Вместо сравнения последовательных кадров камеры с функциями или методами, основанными на интенсивности, сравните все возможные комбинации кадров в определенном временном окне (например, время, чтобы отодвинуться на половину кадра),затем найдите единственную траекторию, которая соответствует всем преобразованиям для всех комбинаций.Вычислительно дороже, но точнее.
Несколько слов предостережения
Если прямой подход не удастся, вас могут одурачить структуры изображений.В некоторых случаях (однородные изображения, вращательно-симметричные изображения ...) он просто не будет работать без независимого подтверждения.