Хорошо, я отправляю свои загадки жизни в stackoverflow после 4 дней бессмысленного программирования, когда кажется, что ничто не дает правильных результатов или, по крайней мере, близко к правильному. извините за то, что я немного драматичен, но сегодня я чувствую себя паршивым программистом.
В любом случае, моя проблема:
Для получения Фундаментальной матрицы используется RANSAC (N> 8).
У меня есть два изображения с широкой базовой линией, но достаточным перекрытием, чтобы адекватное количество ключевых точек SURF (~ 308) совпадало правильно (я их рисую).
Теперь кроется проблема. Я передаю 2D точки cv :: findFindamentalMat, но получаю совершенно необоснованные результаты. Функция возвращает:
FundMat=[2.05148e-13 3.72341 -2.03671e+10
1.6701e+26 -4.17712 4.59533e+29
3.32414e+18 2.8843 1.91069e-26]
Чтобы обойти большой динамический диапазон матрицы, Хартли предложил нормализовать точки данных (в евклидовом пространстве, а не в нормализации проекционного пространства) .... Даже после этого результат практически одинаков. (От 10 ^ -9 до 10 ^ 9)
Я понимаю, что FundMat точен только в масштабе, но разница от 10 ^ -9 до 10 ^ + 9 слишком велика.
Я ссылался на другие вопросы здесь, но, похоже, я не получил никаких указаний: findfundamentalmatrix-doesnt-find-фундаментальный-matrix
как к рассчитаем самой фундаментальной матрицы-для-стерео видения
Любые идеи были бы великолепны. Это очень важный шаг при рассмотрении некалиброванных изображений для остальной части программного конвейера.
В случае, если код полезен. (это не отступ и не окрашен, хотя ... пространство здесь слишком меньше.)
https://sites.google.com/site/3drecon124/