Я работаю над стабилизацией дронов рядом со стенами с помощью камеры. Чтобы это работало, мне нужно извлечь движение, которое камера делает относительно стены. Сейчас я использовал расширенный пример OpenCV, который использует goodFeaturesToTrack
Команда для поиска характерных точек в каждом кадре. Эти характерные точки затем отслеживаются в следующем кадре с помощью calcOpticalFlowPyrLK
который использует метод Лукаса-Канаде. Затем я вычитаю точечные местоположения, чтобы вычислить смещение. Сложение всех смещений вместе дает мне полное смещение от первого кадра. (в промежутке я сделал усреднение и фильтрацию).
Результаты, которые я получаю, совсем не похожи на движение камеры. Движение идет в любом направлении. Кто-нибудь знает, что происходит? Я использую неправильный алгоритм для такой проблемы?
Я думаю, что стандартный пример из opencv samples / cpp / phase_corr.cpp должен помочь.