Как "перевести" движение камеры на изображение?
Я делаю некоторую работу с камерой и стабилизации видео с OpenCV.
Давайте предположим, что я точно знаю (в метрах), сколько моя камера переместилась из одного кадра в другой, и я хочу использовать это, чтобы вернуть второй кадр, где он должен быть.
Я уверен, что я должен сделать некоторую математику с этим числом, прежде чем я сделаю матрицу перевода, но я немного потерян с этим... Любая помощь?
Благодарю.
РЕДАКТИРОВАТЬ: Хорошо, я попытаюсь объяснить это лучше: я хочу удалить из видео движение (дрожание) камеры, и я знаю, насколько камера сместилась (и направление) от одного кадра к другому. Поэтому я хочу переместить второй кадр туда, где он должен использовать ту информацию, которая у меня есть. Я должен сделать матрицу трасляции для каждых двух кадров и применить ее ко второму кадру. Но вот когда я сомневаюсь: поскольку информация, которую я имею, представляет собой метры и движение камеры, и теперь я работаю с изображением и пикселями, я думаю, что мне нужно выполнить некоторые операции, чтобы смещение было правильным, но Я не уверен, что они точно
1 ответ
Знание того, на сколько переместилась камера, недостаточно для создания синтезированного кадра. Для этого вам также понадобится трехмерная модель мира, которой, я полагаю, у вас нет.
Чтобы продемонстрировать, что движение камеры - это чистый перевод, и вы смотрите на два объекта, один очень далеко - в нескольких километрах, а другой - очень близко - в нескольких сантиметрах. Очень далекий объект вряд ли будет двигаться в новом кадре, в то время как очень близкий объект может резко сдвинуться или даже исчезнуть из поля зрения второго кадра, вам нужно знать, насколько изменился угол обзора для каждой точки и для этого вам нужна 3D модель.
Наличие информации с датчиков может помочь в случае вращения, но это не так полезно для переводов.